28 模板匹配

2021-10-02 20:00:19 字數 3427 閱讀 6682

相關api

code

效果1、模板匹配概念;

2、api;

3、code;

1、模板:一幅小的子影象,在大的影象(目標影象)中尋找與子影象相同或相似的部分,稱為模板匹配;

2、模板匹配就是在整個影象區域發現與給定子影象匹配的小塊區域;

3、模板匹配首先需要乙個模板影象t(給定的子影象),還需要乙個待檢測的影象(s),在待檢測影象(target image)上,從左到右,從上到下計算模板影象與重疊子影象的匹配度,匹配程度越大,兩者相同的可能性越大;

1、計算平方不同;越小,越匹配(0–完全匹配)

2、計算相關性(correlation);越相關,值越大

3、計算相關係數;越大,越相似

4、計算歸一化平方不同;

5、計算歸一化相關性不同;(==1 , 完全相關)

6、計算歸一化相關係數;

tm_sqdiff : 計算平方不同

tm_sqdiff_normed :計算歸一化平方不同

tm_ccorr : 計算相關性

tm_ccorr_normed : 計算歸一化相關性

tm_ccoeff : 計算相關係數

tm_ccoeff_normed : 計算歸一化相關係數

1、模板匹配api :matchtemplate()引數說明:

image : 源影象,必須是8bit或32bit浮點數影象;

templ : 模板影象,必須與輸入影象一致;

result : 必須是單通道32位浮點數,假定原影象大小 為wid

th×h

eigh

twidth \times height

width×

heig

ht,模板影象大小為wid

th×h

eigh

twidth \times height

width×

heig

ht,則輸出影象大小必須是(wi

dth−

widt

h+1)

×(he

ight

−hei

ght+

1)(width - width + 1 )\times (height -height + 1)

(width

−wid

th+1

)×(h

eigh

t−he

ight+1)

method : 使用的匹配方法(巨集定義,盡量使用歸一化方法)

//繪製矩形

rectangle

(dst,

rect

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

,scalar(0

,0,255),

2, line_aa)

;rectangle

(result,

rect

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

,scalar(0

,0,255),

2, line_aa)

;imshow

(output, result)

;imshow

(match_t, dst)

;}

原影象,模板影象,模板匹配輸出影象分別如下:

注意:opencv提供的6種演算法需要自行判斷適應性,有的演算法適應性不好,對某些模板檢測會出現錯誤的情況,屬於演算法本身的缺陷;有的演算法則不會出現這種情況;

Lession 28 類模板

同乙個類,對不同的資料型別完成不同的功能 這時可以用類模板 抽象類 忽略函式的具體實現,保留函式原型的宣告 類模板 保留類的具體實現,類模板 例項化為 模板類 template class a 1.類模板的引數可以有預設實參 型別 ifndef stack define stack template...

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.方法 模板匹配中,源影象和...