前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >Python 机器视觉 - 基于opencv图像模板匹配实现的简单人脸匹配实例演示,matchTemplate的6大模板匹配算法

Python 机器视觉 - 基于opencv图像模板匹配实现的简单人脸匹配实例演示,matchTemplate的6大模板匹配算法

作者头像
小蓝枣
发布2021-09-08 15:57:26
1.1K0
发布2021-09-08 15:57:26
举报

第一章:图像模板匹配演示

① 效果展示1

这是我要进行匹配的图片:

在这里插入图片描述
在这里插入图片描述

匹配后的效果:

在这里插入图片描述
在这里插入图片描述

② 效果展示2

这是我要进行匹配的图片:

在这里插入图片描述
在这里插入图片描述

匹配后的效果:

在这里插入图片描述
在这里插入图片描述

③ 实现源码

实现源码如下: 这里使用了 CV_TM_SQDIFF 算法,调用方法为 cv.TM_SQDIFF

代码语言:javascript
复制
import cv2 as cv

def template_matching(img_match, img, arithmetic_model):
    '''
     【作用】
      进行图片模板匹配
     【参数1】
      模板图片
     【参数2】
      进行匹配的图片
     【参数3】
      算法模型
     【返回】
      无
    '''

    # 进行模板匹配
    result = cv.matchTemplate(img, img_match, arithmetic_model)
    
    # 获取最小最大匹配值,还有对应的坐标
    min_value, max_value, min_coordinate, max_coordinate = cv.minMaxLoc(result)
    
    # 默认最佳最大值,当算法为CV_TM_SQDIFF或CV_TM_SQDIFF_NORMED时改为最小值
    best_coordinate = max_coordinate;
    if(arithmetic_model == cv.TM_SQDIFF or arithmetic_model == cv.TM_SQDIFF_NORMED):
        best_coordinate = min_coordinate;
    
    # 获取匹配图片的高和宽
    m_height, m_width = img_match.shape[:2]
    
    # 矩形的起始点和结束点
    r_start = best_coordinate
    r_end = (best_coordinate[0] + m_width, best_coordinate[1] + m_height);
    
    # 矩形的颜色和线的宽度
    r_color = (0, 0, 0)
    r_line_width = 2
    
    # 绘制矩形并展示
    cv.rectangle(img, r_start, r_end, r_color, r_line_width)
    cv.imshow("Xiao Lanzao", img)

# 传入图片数据
img_match = cv.imread("./image/baidu-ico.png")
img = cv.imread("./image/baidu-sousuo.png")

template_matching(img_match, img, cv.TM_SQDIFF)

cv.waitKey(0)
cv.destroyAllWindows()

第二章:六大模板匹配算法

在一些复杂的场景下,从简单的平方差算法到更复杂的相关系数算法,匹配的准确率会不断提高,但是计算量也同时增加了。

① CV_TM_SQDIFF【平方差匹配】

平方差匹配:CV_TM_SQDIFF 说明: 利用平方差进行匹配。 特点:系数越小匹配程度越好,最小值 0公式如下:

在这里插入图片描述
在这里插入图片描述

② CV_TM_SQDIFF_NORMED【标准平方差匹配】

标准平方差匹配:CV_TM_SQDIFF_NORMED 特点同上①。 公式如下:

标准平方差匹配
标准平方差匹配

③ CV_TM_CCORR【相关匹配】

相关匹配:CV_TM_CCORR 利用模板和图像间的乘法操作。 特点: 系数越高匹配效果越好,最小值 0公式如下:

在这里插入图片描述
在这里插入图片描述

④ CV_TM_CCORR_NORMED【标准相关匹配】

标准相关匹配:CV_TM_CCORR_NORMED 特点同③。 公式如下:

在这里插入图片描述
在这里插入图片描述

其中:

在这里插入图片描述
在这里插入图片描述

⑤ CV_TM_CCOEFF【相关系数匹配】

相关系数匹配 CV_TM_CCOEFF 利用模版对其均值的相对值与图像对其均值的相关值进行匹配。 特点: 系数越高匹配系数越好,最大值为 1,最小为 -1公式如下:

在这里插入图片描述
在这里插入图片描述

其中:

在这里插入图片描述
在这里插入图片描述

⑥ CV_TM_CCOEFF_NORMED【标准相关系数匹配】

标准相关系数匹配:CV_TM_CCOEFF_NORMED 特点同上⑤。 公式如下:

在这里插入图片描述
在这里插入图片描述

喜欢的点个赞❤吧!

本文参与 腾讯云自媒体分享计划,分享自作者个人站点/博客。
原始发表:2021-08-29 ,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 第一章:图像模板匹配演示
  • ① 效果展示1
  • ② 效果展示2
  • ③ 实现源码
  • 第二章:六大模板匹配算法
  • ① CV_TM_SQDIFF【平方差匹配】
  • ② CV_TM_SQDIFF_NORMED【标准平方差匹配】
  • ③ CV_TM_CCORR【相关匹配】
  • ④ CV_TM_CCORR_NORMED【标准相关匹配】
  • ⑤ CV_TM_CCOEFF【相关系数匹配】
  • ⑥ CV_TM_CCOEFF_NORMED【标准相关系数匹配】
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档