OpenCV26 模板匹配

2021-10-04 12:35:40 字數 2065 閱讀 7217

二十

六、模板匹配

1、模板匹配介紹(template match)

2、匹配演算法介紹

opencv中提供了6種常見的匹配演算法如下:

歸一化:

3、相關api介紹

cv::matchtemplate

matchtemplate

(inputarray image,

//原影象,必須是8bit或者32bit浮點數影象

inputarray templ,

//模板影象,型別與輸入影象一致

outputarray result,

//輸出結果,必須是單通道32bit浮點數。例如:假設原影象大小是w*h,模板影象大小是w*h,那麼結果大小必須為(w-w+1)*(h-h+1)。

int method,

//使用的模板匹配方法

inputarray mask=

noarray()

//(optional)

)

示例**:(模板匹配)

#include

#include

#include

using

namespace cv;

using

namespace std;

mat src, dst, temp, result;

int match_method = tm_sqdiff;

int max_track =5;

const

char

* input_t =

"input image"

;const

char

* output_t =

"result image"

;const

char

* match_t =

"template match-demo"

;void

match_demo

(int

,void*)

;int

main

(int argc,

char

** ar**)

namedwindow

(input_t, window_autosize)

;namedwindow

(output_t, window_autosize)

;namedwindow

(match_t, window_autosize)

;imshow

(input_t, src)

;imshow

("temp"

, temp)

;const

char

* trackbar_title =

"match alogo type"

;createtrackbar

(trackbar_title, output_t,

&match_method, max_track, match_demo)

;match_demo(0

,0);

waitkey(0

);return0;

}void

match_demo

(int

,void*)

else

//繪製矩形

rectangle

(dst,

rect

(temploc.x, temploc.y, temp.cols, temp.rows)

,scalar(0

,0,255),

2,8)

;//rectangle(result, rect(temploc.x, temploc.y, temp.cols, temp.rows), scalar(0, 0, 255), 2, 8);

imshow

(match_t, dst)

;}

輸出結果顯示:

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

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