[opencv] 模板匹配案例
srcimage:=cvLoadImage(PAnsiChar(testImageName),1);
temImage:=cvLoadImage(PAnsiChar(mudeImageName),1);//temImage为模板图片,其尺寸一定要小于srcimage
resimage:=cvCreateImage(cvSize(srcimage.width-temImage.width+1, srcimage.height-temimage.height+1), 32, 1);//注意resimage的宽的和高度是如何得来的
cvMatchTemplate(srcimage, temImage, resimage,CV_TM_SQDIFF);//匹配的结果保存在resimage图片结构体中,CV_TM_SQDIFF表示平方差匹配法
cvMinMaxLoc(resimage,@min,@max,@minpoint,@maxpoint,nil);//从resimage图片结构体中提取出匹配的结果,min,max:Double;表示最小匹配结果和最大匹配结果,
minpoint,maxpoint:TCvPoint;存放着最差结果和最好结果的点信息,请注意匹配方法的不同,对应着不同的提取结果的方式
cvShowImage(\'源图\',srcimage);
cvShowImage(\'模板图\',temImage);
p2.x:=minpoint.x+temImage.width;//p2:TCvPoint;
p2.y:=minpoint.y+temimage.height;
cvRectangle(srcimage,minpoint,p2,CV_RGB(0,0,255),3,8,0);//minpoint,p2:TCvPoint为找到的最佳匹配区域矩形的两个对角顶点
cvShowImage(\'匹配结果\',srcimage);
cvReleaseImage(srcimage);
cvReleaseImage(temImage);
cvReleaseImage(resimage);