OpenCV_模板匹配(Template Matching)

1. 什么是模板匹配?

模板匹配是一种用于在源图像S中寻找定位给定目标图像T(即模板图像)的技术。其原理很简单,就是通过一些相似度准则来衡量两个图像块之间的相似度Similarity(S,T)。

2. 用途

模板匹配方法常用于一些平面图像处理中,例如印刷中的数字、工业零器件等小尺寸目标图像识别分类。

3. 方法

模板匹配中,源图像和模板图像可以是二值图像、灰度图像、彩色图像。

一般而言,模板匹配有两种使用场景:

1)如果源图像S与模板图像T大小(高和宽)一致,则直接使用相似度计算公式对这两个图像进行相似度计算。

2)如果源图像S的size大于模板图像T,则在S中匹配T时,需要滑动匹配窗口(即模板图像的大小),计算模板图像与该窗口对应的图像区域之间的相似度。对整张S图像滑动完后,得到多个匹配结果。这里,有两种方式获取匹配结果。一种是返回所有匹配结果中的最佳匹配结果(最小值或最大值,依相似度计算方式而定)。另一种,是设定一个阈值,大于或小于该阈值的匹配结果都认为是有效的匹配。

例如,如图1所示,想要在大图中定位到小图(小狗的头部),使用模板匹配时的滑动过程如图2所示:

OpenCV_模板匹配(Template Matching)

图1

(来源:http://docs.opencv.org/doc/tutorials/imgproc/histograms/template_matching/template_matching.html#template-matching)

OpenCV_模板匹配(Template Matching)

图2

(来源:http://docs.opencv.org/doc/tutorials/imgproc/histograms/template_matching/template_matching.html#template-matching)

滑动完整张大图后,得到一张包含所有匹配结果的图,如图3所示。图3中的一个像素位置代表了一次模板匹配的结果。

OpenCV_模板匹配(Template Matching)

图3

(来源:http://docs.opencv.org/doc/tutorials/imgproc/histograms/template_matching/template_matching.html#template-matching)

相关推荐