OpenCV-模板匹配
阿新 • • 發佈:2019-01-29
尋找一幅影象的匹配的模板,可以在一段視訊裡尋找出我們感興趣的東西,比如條形碼的識別就可能需要這樣類似的一個工作提取出條形碼區域(當然這樣的方法並不魯棒)。而OpenCV已經為我們整合好了相關的功能。函式為matchTemplate。
所謂模板匹配就是在一幅影象中尋找和模板影象(patch)最相似的區域。該函式的功能為,在輸入源影象Source image(I)中滑動框,尋找各個位置與模板影象Template image(T)的相似度,並將結果儲存在結果矩陣result matrix(R)中。該矩陣的每一個點的亮度表示與模板T的匹配程度。然後可以通過函式minMaxLoc定位矩陣R中的最大值(該函式也可以確定最小值)。
匹配的方法有:
CV_TM_SQDIFF 平方差匹配法,最好的匹配為0,值越大匹配越差
CV_TM_SQDIFF_NORMED 歸一化平方差匹配法
CV_TM_CCORR 相關匹配法,採用乘法操作,數值越大表明匹配越好
CV_TM_CCORR_NORMED 歸一化相關匹配法
CV_TM_CCOEFF 相關係數匹配法,最好的匹配為1,-1表示最差的匹配
CV_TM_CCOEFF_NORMED 歸一化相關係數匹配法
前面兩種方法為越小的值表示越匹配,後四種方法值越大越匹配。
其實模板匹配的使用和直方圖反向投影calcBackProject函式很像,只是直方圖反向投影對比的是直方圖,而模板匹配對比的是影象的畫素值,相比較而言,直方圖反向投影的匹配魯棒性更好。
總結這個函式,感覺功能不是很強大,應用不是很廣,因為只能在影象中搜索出指定的模板,如果模板是從待搜尋目標中截取出來的,效果會很好,如果模板不是待搜素影象的一部分,效果就差的多了,所以該函式的使用還是有很大的侷限性。