더북(TheBook)

OpenCV에서는 matchTemplate() 함수를 사용하여 템플릿 매칭을 수행할 수 있습니다. matchTemplate() 함수 원형은 다음과 같습니다.

void matchTemplate(InputArray image, InputArray templ,
                   OutputArray result, int method, InputArray mask = noArray());

image

입력 영상. 8비트 또는 32비트 실수형

templ

템플릿 영상. 입력 영상 image보다 같거나 작아야 하며, image와 타입이 같아야 합니다.

result

(출력) 비교 결과를 저장할 행렬. CV_32FC1 타입

method

템플릿 매칭 비교 방법. TemplateMatchModes 열거형 상수 중 하나를 지정합니다.

mask

찾고자 하는 템플릿의 마스크 영상. mask는 templ과 같은 크기, 같은 타입이어야 합니다. TM_SQDIFFTM_CCORR_NORMED 방법에서만 지원됩니다.

 

matchTemplate() 함수는 입력 영상 image에서 템플릿 영상 templ을 이용하여 템플릿 매칭을 수행하고, 그 결과로 생성되는 유사도 맵 또는 비유사도 맵은 result 인자로 반환합니다. 만약 image 영상의 크기가 W×H이고 templ 영상 크기가 w×h인 경우, result 행렬의 크기는 (W - w + 1)×(H - h + 1)로 결정됩니다.

matchTemplate() 함수에서 템플릿 영상과 입력 영상 간의 비교 방식은 method 인자로 설정할 수 있습니다. method 인자에는 TemplateMatchModes 열거형 상수 중 하나를 지정할 수 있으며, TemplateMatchModes 열거형 상수와 의미를 표 13-1에 정리하였습니다. TM_SQDIFF는 제곱차(squared difference) 매칭 방법을 의미하며, 이 경우 두 영상이 완벽하게 일치하면 0이 되고 서로 유사하지 않으면 0보다 큰 양수를 갖습니다. TM_CCORR은 상관관계(correlation) 매칭 방법을 의미하며, 이 경우 두 영상이 유사하면 큰 양수가 나오고 유사하지 않으면 작은 값이 나옵니다. TM_CCOEFF는 상관계수(correlation coefficient) 매칭 방법을 의미하며, 이는 비교할 두 영상을 미리 평균 밝기로 보정한 후 상관관계 매칭을 수행하는 방식입니다. TM_CCOEFF 방법은 두 비교 영상이 유사하면 큰 양수가 나오고, 유사하지 않으면 0에 가까운 양수 또는 음수가 나오게 됩니다.

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