模板匹配就是在整個圖像區域發現與給定子圖像匹配的小塊區域。所以模板匹配首先需要一個模板圖像T(給定的子圖像)另外需要一個待檢測的圖像-源圖像S工作方法,在帶檢測圖像上,從左到右,從上向下計算模板圖像與重疊子圖像的匹配度,匹配程度越大,兩者相同的可能性越大。
匹配算法
- 計算平方不同
\[{\rm{R}}\left( {x,y} \right) = \sum\limits_{x',y'} {{{\left( {T(x',y') - I(x + x',y + y')} \right)}^2}} \]
歸一化處理:
\[{\rm{R}}\left( {x,y} \right) = \frac{{\sum\nolimits_{{\rm{x'}},y'} {{{(T(x',y') - I(x + x',y + y'))}^2}} }}{{\sqrt {\sum\nolimits_{{\rm{x'}},y'} {T{{(x',y')}^2} \bullet \sum\nolimits_{x',y'} {I{{(x + x',y + y')}^2}} } } }}\]
- 計算相關性
\[{\rm{R}}\left( {x,y} \right){\rm{ = }}\sum\limits_{{\rm{x'}},y'} {(T(x',y') \bullet I(x + x',y + y'))} \]
歸一化處理:
\[R\left( {x,y} \right) = \frac{{\sum\nolimits_{{\rm{x'}},y'} {(T(x',y') \bullet I(x + x',y + y'))} }}{{\sqrt {\sum\nolimits_{{\rm{x'}},y'} {T{{(x',y')}^2} \bullet \sum\nolimits_{x',y'} {I{{(x + x',y + y')}^2}} } } }}\]
- 計算相關系數
$${\rm{R}}\left( {x,y} \right) = \sum\limits_{x',y'} {\left( {T(x',y') - I(x + x',y + y')} \right)} $$
$$T'\left( {x',y'} \right) = T(x',y') - \frac{1}{{w \bullet h}}\sum\nolimits_{x'',y''} {T(x'',y'')} $$
$$I'(x + x',y + y') = I(x + x',y + y') - \frac{1}{{w \bullet h}}\sum\nolimits_{x'',y''} {I(x + x'',y + y'')} $$
歸一化處理:
\[{\rm{R}}\left( {x,y} \right) = \frac{{\sum\nolimits_{{\rm{x'}},y'} {(T'(x',y') \bullet I'(x + x',y + y'))} }}{{\sqrt {\sum\nolimits_{{\rm{x'}},y'} {T{{(x',y')}^2} \bullet \sum\nolimits_{x',y'} {I'{{(x + x',y + y')}^2}} } } }}\]
下圖左上角為模板,大圖為匹配的效果。

matchTemplate(src, muban, result, match_method, Mat()); //src為原圖像, muban為模板圖像,result為輸出結果,必須是單通道32位浮點數, //假設源圖像WxH,模板圖像wxh,則結果必須為W-w+1, H-h+1的大小。match_method為匹配方法。
match_method匹配方法如下表所示:

