參考http://www.cnblogs.com/xrwang/archive/2010/02/05/matchtemplate.html
和"learning opencv"
模板匹配的工作方式
模板匹配的工作方式跟直方圖的反向投影基本一樣,大致過程是這樣的:通過在輸入影象上滑**像塊對實際的影象塊和輸入影象進行匹配。
假設我們有一張100x100的輸入影象,有一張10x10的模板影象,查詢的過程是這樣的:
(1)從輸入影象的左上角(0,0)開始,切割一塊(0,0)至(10,10)的臨時影象;
(2)用臨時影象和模板影象進行對比,對比結果記為c;
(3)對比結果c,就是結果影象(0,0)處的畫素值;
(4)切割輸入影象從(0,1)至(10,11)的臨時影象,對比,並記錄到結果影象;
(5)重複(1)~(4)步直到輸入影象的右下角。
大家可以看到,直方圖反向投影對比的是直方圖,而模板匹配對比的是影象的畫素值;模板匹配比直方圖反向投影速度要快一些,但是我個人認為直方圖反向投影的魯棒性會更好。
模板匹配的匹配方式
在opencv和emgucv中支援以下6種對比方式:
cv_tm_sqdiff 平方差匹配法:該方法採用平方差來進行匹配;最好的匹配值為0;匹配越差,匹配值越大。
cv_tm_ccorr 相關匹配法:該方法採用乘法操作;數值越大表明匹配程度越好。
cv_tm_ccoeff 相關係數匹配法:1表示完美的匹配;-1表示最差的匹配。
cv_tm_sqdiff_normed 歸一化平方差匹配法
cv_tm_ccorr_normed 歸一化相關匹配法
cv_tm_ccoeff_normed 歸一化相關係數匹配法
[code]#include
#include
#include
#include
int main( int argc, char** argv )
//read in the template to be used for matching:
if((templ=cvloadimage(argv[2], 1))== 0)
//allocate output images:
int iwidth = src->width - templ->width + 1;
int iheight = src->height - templ->height + 1;
for(i=0; i<6; ++i)
//do the matching of the template with the image:
for(i=0; i<6; ++i)
//display
cvnamedwindow( "template", 0 );
cvshowimage( "template", templ );
cvnamedwindow( "image", 0 );
cvshowimage( "image", src );
cvshowimage( "sqdiff", ftmp[0] );
cvnamedwindow( "sqdiff_normed", 0 );
cvshowimage( "sqdiff_normed", ftmp[1] );
cvnamedwindow( "ccorr", 0 );
cvshowimage( "ccorr", ftmp[2] );
cvnamedwindow( "ccorr_normed", 0 );
cvshowimage( "ccorr_normed", ftmp[3] );
cvnamedwindow( "ccoeff", 0 );
cvshowimage( "ccoeff", ftmp[4] );
cvnamedwindow( "ccoeff_normed", 0 );
cvshowimage( "ccoeff_normed", ftmp[5] );
//let user view results:
cvwaitkey(0);
}else
}[/code]
測試結果:
OpenCV模板匹配
include include opencv2 opencv.hpp using namespace std using namespace cv int main int argc,char argv load reference image img imread argv 1 always ch...
opencv模板匹配
模板匹配是一種用於在源影象s中尋找定位給定目標影象t 即模板影象 的技術。其原理很簡單,就是通過一些相似度準則來衡量兩個影象塊之間的相似度similarity s,t 2.用途 模板匹配方法常用於一些平面影象處理中,例如印刷中的數字 工業零器件等小尺寸目標影象識別分類。3.方法 模板匹配中,源影象和...
模板匹配opencv
模板匹配,就是在一幅影象中尋找另一幅模板影象最匹配 也就是最相似 的部分的技術。說的有點抽象,下面給個例子說明就很明白了。在上面這幅全明星照中,我們想找出姚明頭像的位置,並把它標記出來,可以做到嗎?可以,這就是模板匹配的要做的事情。其實模板匹配實現的思想也是很簡單很暴力的,就是拿著模板 姚明頭像 在...