引言
模板匹配是在一幅图像中寻找一个特定目标的方法之一。这种方法的原理非常简单,遍历图像中的每一个可能的位置,比较各处与模板是否“相似”,当相似度足够高时,就认为找到了我们的目标。
匹配方法
在 OpenCV 中,提供了相应的匹配函数完成这个操作:matchTemplate、 minMaxLoc
matchTemplate 函数:在模板和输入图像之间寻找匹配,获得匹配结果图像
minMaxLoc 函数:在给定的矩阵中寻找最大和最小值,并给出它们的位置
在具体介绍这两个函数之前呢,我们还要介绍一个概念,就是如何来评价两幅图像是否“相似”。
OpenCV 提供了 6 种计算两幅图像相似度的方法:
- 差值平方和匹配 CV_TM_SQDIFF
- 标准化差值平方和匹配 CV_TM_SQDIFF_NORMED
- 相关匹配 CV_TM_CCORR
- 标准相关匹配 CV_TM_CCORR_NORMED
- 相关匹配 CV_TM_CCOEFF
- 标准相关匹配 CV_TM_CCOEFF_NORMED
方法介绍
下面就分别来介绍。首先,先给出几个符号:
T(x,y) 用来表示我们的模板。I(x,y) 是我们的目标图像。 R(x,y) 是用来描述相似度的函数。
差值平方和匹配 CV_TM_SQDIFF
这类方法利用图像与模板各个像素差值的平方和来进行匹配,最好匹配为 0。 匹配越差,匹配值越大。