아.. 이런 원리인가!
template matching 방법을 정해주고
나온 이미지를 normalize 해서 0과 1로 출력하게 하고
minMaxLoc으로 매칭되는 부분을 찾고(포인트 단위)
원본 템플릿 이미지의 폭을 이용해서 박스를 그려준다.
+
normalize 된걸 출력해봤는데
SQDIFF / TM CCORR 은 출력되는게 없고(normalize 되지 않아서 그런 듯)
SQDIFF NORMED / TM CCORR NORMED / TM COEFF / TM COEFF NORMED 만 나온다
+
Mat img; Mat templ; Mat result; int match_method; // 6가지 종류의 매칭 방법(0~5) double minVal; double maxVal; Point minLoc; Point maxLoc; img = imread( argv[1], 1 ); templ = imread( argv[2], 1 ); matchTemplate( img, templ, result, match_method ); normalize( result, result, 0, 1, NORM_MINMAX, -1, Mat() ); minMaxLoc( result, &minVal, &maxVal, &minLoc, &maxLoc, Mat() ); if( match_method == CV_TM_SQDIFF || match_method == CV_TM_SQDIFF_NORMED ) { matchLoc = minLoc; } else { matchLoc = maxLoc; } rectangle( img_display, matchLoc, Point( matchLoc.x + templ.cols , matchLoc.y + templ.rows ), Scalar::all(0), 2, 8, 0 ); rectangle( result, matchLoc, Point( matchLoc.x + templ.cols , matchLoc.y + templ.rows ), Scalar::all(0), 2, 8, 0 ); [링크 : http://docs.opencv.org/doc/tutorials/imgproc/histograms/template_matching/template_matching.html] |
C++: void matchTemplate(InputArray image, InputArray templ, OutputArray result, int method) [링크 : http://docs.opencv.org/modules/imgproc/doc/object_detection.html#matchtemplate] |
C++: void normalize(InputArray src, OutputArray dst, double alpha=1, double beta=0, int norm_type=NORM_L2, int dtype=-1, InputArray mask=noArray() ) C++: void normalize(const SparseMat& src, SparseMat& dst, double alpha, int normType) [링크 : http://docs.opencv.org/modules/core/doc/operations_on_arrays.html#normalize] |
C++: void minMaxLoc(InputArray src, double* minVal, double* maxVal=0, Point* minLoc=0, Point* maxLoc=0, InputArray mask=noArray()) C++: void minMaxLoc(const SparseMat& a, double* minVal, double* maxVal, int* minIdx=0, int* maxIdx=0 ) [링크 : http://docs.opencv.org/modules/core/doc/operations_on_arrays.html#minmaxloc] |
'Programming > openCV' 카테고리의 다른 글
opencv 마우스 이벤트와 빠르게 그리기 (0) | 2015.10.05 |
---|---|
opencv 마우스 이벤트 관련 2 (0) | 2015.10.05 |
opencv neon 최적화 (0) | 2015.10.01 |
openCV 템플릿 매칭 예제 실행 (0) | 2015.10.01 |
opencv 버전들 (0) | 2015.09.30 |