OpenCV模板匹配

2021-06-14 10:09:00 字數 2135 閱讀 6651

#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 check */

if( img.empty() )

/* load template image */

tpl = imread( argv[2] );

/* always check */

if( tpl.empty())

/* get image's properties */

img_width = img.cols;

img_height = img.rows;

tpl_width = tpl.cols;

tpl_height = tpl.rows;

res_width = img_width - tpl_width + 1;

res_height = img_height - tpl_height + 1;

/* create new image for template matching computation */

res = cvcreateimage( cvsize( res_width, res_height ), ipl_depth_32f, 1 );

/* choose template matching method to be used */

matchtemplate( img, tpl, res, cv_tm_sqdiff );

minmaxloc( res, &minval, &maxval, &minloc, &maxloc,mask);

/* draw white rectangle */

rectangle( img,

cvpoint( minloc.x, minloc.y ),

cvpoint( minloc.x + tpl_width, minloc.y + tpl_height ),

cvscalar( 255, 255, 255, 0 ), 1, 0, 0 );

/* display images */

imshow( "reference", img );

imshow( "template", tpl );

/* wait until user press a key to exit */

cvwaitkey( 0 );

return 0;

}

作用:找到矩陣中全域性最大值和最小值。

c++:

void 

minmaxloc

(inputarray 

src, double* 

minval

, double* 

maxval

=0, point* 

minloc

=0, point* 

maxloc

=0, inputarray

mask

=noarray())¶

具體引數含義參考:

作用:比較模板影象和源影象重疊區域的匹配。

c++:

void 

matchtemplate

(inputarray 

image

, inputarray 

templ

, outputarray 

result

, int 

method

)具體引數含義參考:

結果 模板影象

匹配之後

圖中白色框區域是匹配區域,效果很不錯哦!

文章參考:

opencv模板匹配

模板匹配是一種用於在源影象s中尋找定位給定目標影象t 即模板影象 的技術。其原理很簡單,就是通過一些相似度準則來衡量兩個影象塊之間的相似度similarity s,t 2.用途 模板匹配方法常用於一些平面影象處理中,例如印刷中的數字 工業零器件等小尺寸目標影象識別分類。3.方法 模板匹配中,源影象和...

模板匹配opencv

模板匹配,就是在一幅影象中尋找另一幅模板影象最匹配 也就是最相似 的部分的技術。說的有點抽象,下面給個例子說明就很明白了。在上面這幅全明星照中,我們想找出姚明頭像的位置,並把它標記出來,可以做到嗎?可以,這就是模板匹配的要做的事情。其實模板匹配實現的思想也是很簡單很暴力的,就是拿著模板 姚明頭像 在...

opencv 模板匹配

模板匹配的工作方式 模板匹配的工作方式跟直方圖的反向投影基本一樣,大致過程是這樣的 通過在輸入影象上滑 像塊對實際的影象塊和輸入影象進行匹配。假設我們有一張100x100的輸入影象,有一張10x10的模板影象,查詢的過程是這樣的 1 從輸入影象的左上角 0,0 開始,切割一塊 0,0 至 10,10...