opencv模板匹配

2021-06-27 01:45:15 字數 2256 閱讀 2713

>

模板匹配是一種用於在源影象s中尋找定位給定目標影象t(即模板影象)的技術。其原理很簡單,就是通過一些相似度準則來衡量兩個影象塊之間的相似度similarity(s,t)。

2. 用途

模板匹配方法常用於一些平面影象處理中,例如印刷中的數字、工業零器件等小尺寸目標影象識別分類。

3. 方法

模板匹配中,源影象和模板影象可以是二值影象、灰度影象、彩色影象。

一般而言,模板匹配有兩種使用場景:

1)如果源影象s與模板影象t大小(高和寬)一致,則直接使用相似度計算公式對這兩個影象進行相似度計算。

2)如果源影象s的size大於模板影象t,則在s中匹配t時,需要滑動匹配視窗(即模板影象的大小),計算模板影象與該視窗對應的影象區域之間的相似度。對整張s影象滑動完後,得到多個匹配結果。這裡,有兩種方式獲取匹配結果。一種是返回所有匹配結果中的最佳匹配結果(最小值或最大值,依相似度計算方式而定)。另一種,是設定乙個閾值,大於或小於該閾值的匹配結果都認為是有效的匹配。

例如,如圖1所示,想要在大圖中定位到小圖(小狗的頭部),使用模板匹配時的滑動過程如圖2所示:

滑動完整張大圖後,得到一張包含所有匹配結果的圖,如圖3所示。圖3中的乙個畫素位置代表了一次模板匹配的結果。

4. 模板匹配中常用的相似度計算方法有:

1)square difference matching method (method = cv_tm_sqdiff) 平方差

2)correlation matching methods (method = cv_tm_ccorr) 互相關

3)correlation coefficient matching methods (method = cv_tm_ccoeff)  相關係數

4)上述三種方法的歸一化形式(目的是為了減少光照的影響)

上述方法,opencv中都有實現。另外,除上述opencv實現了的方法外,還有一些相似度衡量方法,包括:

5)sum of absolute difference sad 絕對差值

6)match pixel count mpc 匹配成功點數

5. 模板匹配方法的優缺點:

優點:簡單、直接

缺點:不具有旋轉不變性、不具有尺度不變性

5. opencv中的模板匹配例項**:

[cpp]view plain

copy

#include "opencv2/highgui/highgui.hpp"

#include "opencv2/imgproc/imgproc.hpp"

#include 

using

namespace

std;  

using

namespace

cv;  

/// 全域性變數

mat img; mat templ; mat result;  

char

* image_window = 

"source image"

;  char

* result_window = 

"result window"

;  int

match_method;  

intmax_trackbar = 5;  

/// 函式宣告

void

matchingmethod( 

int, 

void

* );  

intmain( 

intargc, 

char

** argv )  

// 模板匹配

void

matchingmethod( 

int, 

void

* )  

else

// 顯示匹配結果

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 );  

imshow( image_window, img_display );  

imshow( result_window, result );  

}  

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

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

opencv 模板匹配

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