什么是模板匹配呢? 看到这里大家是否会觉得很熟悉的感觉涌上心头!在人脸识别是不是也会看见等等。 模板匹配可以看作是对象检测的一种非常基本的形式。使用模板匹配,我们可
什么是模板匹配呢? 看到这里大家是否会觉得很熟悉的感觉涌上心头!在人脸识别是不是也会看见 等等。 模板匹配可以看作是对象检测的一种非常基本的形式。使用模板匹配,我们可以使用包含要检测对象的“模板”来检测输入图像中的对象。 一、匹配方法cv2.matchTemplate(img, templ, method) 参数:(img: 原始图像、temple: 模板图像、method: 匹配度计算方法) 方法如下: cv2.TM_SQDIFF: 计算平方差,计算结果越小,越相关 公式: cv2.TM_CCORR: 计算相关性,计算出来的值越大,越相关 公式: cv2.TM_CCOEFF: 计算相关系数,计算出的值越大,越相关 公式: cv2.TM_SQDIFF_NORMED: 计算归一化平方差,计算结果越接近0,越相关 公式: cv2.TM_CCORR_NORMED: 计算归一化相关性,计算结果越接近1,越相关 公式: cv2.TM_CCOEFF_NORMED: 计算归一化相关系数,计算结果越接近1,越相关 公式: 二、匹配单个对象img代表原始图像,template代表模板窗口,1默认为cv2.TM_SQDIFF方法
获取结果的最值和最值位置(最值位置是左上角的坐标位置,通过模板的宽和高可以在原图上把模板位置画出来)
完整的代码:
结果如图所示: 多次实验你会发现归一的方法更准确。 三、匹配多个对象1.导包构建函数
2.读入图像转灰度图,改大小。
3.图像匹配
结果如图所示: 4.取匹配程度大于75%的坐标 ,画在原图上 其中:zip(*) 可理解为解压,返回二维矩阵式。loc中loc[0]是高,loc[1]是宽,[::-1]表示倒序。p[0]代表宽,p[1]代表高
结果如图所示: |
2019-06-18
2019-07-04
2021-05-23
2021-05-27
2021-05-27