模板匹配

Posted fuzhuoxin

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了模板匹配相关的知识,希望对你有一定的参考价值。

  模板匹配就是在整个图像区域发现与给定子图像匹配的小块区域。所以模板匹配首先需要一个模板图像T(给定的子图像)另外需要一个待检测的图像-源图像S工作方法,在带检测图像上,从左到右,从上向下计算模板图像与重叠子图像的匹配度,匹配程度越大,两者相同的可能性越大。

技术图片匹配算法

  • 计算平方不同

[{ m{R}}left( {x,y} ight) = sumlimits_{x‘,y‘} {{{left( {T(x‘,y‘) - I(x + x‘,y + y‘)} ight)}^2}} ]

  归一化处理:

[{ m{R}}left( {x,y} ight) = frac{{sum olimits_{{ m{x‘}},y‘} {{{(T(x‘,y‘) - I(x + x‘,y + y‘))}^2}} }}{{sqrt {sum olimits_{{ m{x‘}},y‘} {T{{(x‘,y‘)}^2} ullet sum olimits_{x‘,y‘} {I{{(x + x‘,y + y‘)}^2}} } } }}]

  • 计算相关性

[{ m{R}}left( {x,y} ight){ m{ = }}sumlimits_{{ m{x‘}},y‘} {(T(x‘,y‘) ullet I(x + x‘,y + y‘))} ]

  归一化处理:

[Rleft( {x,y} ight) = frac{{sum olimits_{{ m{x‘}},y‘} {(T(x‘,y‘) ullet I(x + x‘,y + y‘))} }}{{sqrt {sum olimits_{{ m{x‘}},y‘} {T{{(x‘,y‘)}^2} ullet sum olimits_{x‘,y‘} {I{{(x + x‘,y + y‘)}^2}} } } }}]

  • 计算相关系数

$${ m{R}}left( {x,y} ight) = sumlimits_{x‘,y‘} {left( {T(x‘,y‘) - I(x + x‘,y + y‘)} ight)} $$

$$T‘left( {x‘,y‘} ight) = T(x‘,y‘) - frac{1}{{w ullet h}}sum olimits_{x‘‘,y‘‘} {T(x‘‘,y‘‘)} $$

$$I‘(x + x‘,y + y‘) = I(x + x‘,y + y‘) - frac{1}{{w ullet h}}sum olimits_{x‘‘,y‘‘} {I(x + x‘‘,y + y‘‘)} $$

  归一化处理:

[{ m{R}}left( {x,y} ight) = frac{{sum olimits_{{ m{x‘}},y‘} {(T‘(x‘,y‘) ullet I‘(x + x‘,y + y‘))} }}{{sqrt {sum olimits_{{ m{x‘}},y‘} {T{{(x‘,y‘)}^2} ullet sum olimits_{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匹配方法如下表所示:

技术图片

以上是关于模板匹配的主要内容,如果未能解决你的问题,请参考以下文章

VSCode自定义代码片段——.vue文件的模板

VSCode自定义代码片段1——vue主模板

VSCode自定义代码片段2——.vue文件的模板

VSCode自定义代码片段(vue主模板)

Eclipse 中的通用代码片段或模板

调用模板化成员函数:帮助我理解另一个 *** 帖子中的代码片段