OpenCV match template 簡介

JianJie
3 min readOct 3, 2020

--

模板匹配(match template)是一種用於尋找與模板圖像(補丁)匹配(相似)的圖像區域的技術。

需要兩張圖片:

原始圖片: 希望在其中找到與模板圖片匹配的位置

模板圖片: 用來與原始圖片匹配的圖片(較小張圖片),可以視為樣本

如下圖:

左圖為原始圖片,中間為模板,右圖為匹配結果,紅色方框為與模板相匹配的區域

匹配流程為將模板掃過整張圖片(Sliding Window),從左至右、從上至下,對每一個位置計算指標,之後用於判斷與其區域相符的分數

最後可得到位置匹配圖,如圖:

紅色圓圈為與之罪為匹配的位置

之後可以找出圖片中分數最高的值(或最小值,根據計算方式判斷),即為原始圖片中與模板最相似的位置

OpenCV 中模板比對函式:

matchTemplate(InputArray image, InputArray templ, OutputArray result, int method)

image: 輸入圖片

templ: 輸入模板

result: 輸出模板相符分數圖

method: 比對方法

其中OpenCV 提供6種方法:

R表示結果,T表示模板,I表示原始圖片

CV_TM_SQDIFF:

將圖片直接與模板相減之平方差,與原始圖片差值最小的位置即為結果,但容易受到光線影響,匹配結果較不穩定

CV_TM_SQDIFF_NORMED:

正規化後的平方差,可以適應原始圖片及模板同時提高亮度的狀況,但只有其中之一的圖片光線調整,依然會產生問題

CV_TM_CCORR:

相關性係數(correlation),分數越高越相似

CV_TM_CCORR_NORMED:

正規化相關性係數(correlation),分數越高越相似

CV_TM_CCOEFF:

相關性係數,但去除本身圖片亮度,只保留圖片分布,可以適應圖片及模板亮度變化,分數越高越相似

CV_TM_CCOEFF_NORMED:

正規化相關性係數,且除本身圖片亮度,只保留圖片分布,分數越高越相似

--

--

JianJie
JianJie

Written by JianJie

Image Processing / Computer Vision / Deep Learning

No responses yet