더북(TheBook)

template_matching() 함수 실행 결과를 그림 13-3에 나타냈습니다. 그림 13-3(a)는 템플릿으로 사용한 crystal.bmp 영상이고, 그림 13-3(b)는 템플릿 매칭으로 계산된 유사도 행렬을 그레이스케일 형식 영상으로 나타낸 res_norm 영상입니다. template_matching() 함수에서 TM_CCOEFF_NORMED 방식으로 템플릿 매칭을 수행했으므로 템플릿 매칭 결과 행렬 res는 -1부터 1 사이의 실수이며, 이를 0부터 255 사이의 정수 범위로 정규화한 결과가 res_norm입니다. 그러므로 res_norm 영상에서 가장 밝게 나타나는 위치가 템플릿 영상과 가장 유사한 부분입니다. 이 위치에 빨간색 사각형을 그려서 나타낸 결과를 그림 13-3(c) img 창에 나타냈습니다. 그림 13-3(c)에 나타난 img 영상은 원본 circuit.bmp 영상보다 밝아졌고 잡음이 추가되어 지저분하게 변경되었지만, 수정 발진기 부품 위치가 정확하게 검출되었습니다. template_matching() 함수가 실행되면 콘솔 창에는 “maxv: 0.976276” 문자열이 출력됩니다. 이는 템플릿 매칭으로 검출된 위치에서 정규화된 상관계수 값을 나타내며, 이 값이 1에 가까운 실수이므로 매칭이 잘 되었다고 가늠할 수 있습니다.

▲ 그림 13-3 템플릿 매칭 예제 실행 결과

 

Note

템플릿 매칭은 알고리즘 특성상 입력 영상이 회전되거나 크기가 변경되면 제대로 동작하지 않습니다. 또한 찾고자 하는 템플릿 영상이 다른 객체에 의해 가려져도 좋은 매칭 결과를 기대할 수 없습니다. 이러한 경우에는 템플릿 매칭 방법보다는 14장에서 설명하는 특징점 매칭 기법을 이용하여 원하는 객체 영역을 찾을 수 있습니다.

신간 소식 구독하기
뉴스레터에 가입하시고 이메일로 신간 소식을 받아 보세요.