前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >OpenCV基础 | 10. 模板匹配

OpenCV基础 | 10. 模板匹配

作者头像
快学Python
发布2021-08-09 10:24:14
4490
发布2021-08-09 10:24:14
举报
文章被收录于专栏:快学Python

学习视频可参见python+opencv3.3视频教学 基础入门[1]

模板匹配

1.模板匹配原理

  • 模板匹配是一项在一幅图像中寻找与另一幅模板图像最匹配(相似)部分的技术.
  • 原理:在要检测的图像上,从左到右,从上到下遍历这一幅图像,从上到下计算模板与重叠子图像的像素匹配度,如果匹配的程度越大,这说明相同的可能性越大。

2.模板匹配算法

  • OpenCV中的函数 matchTemplate 实现了模板匹配算法
  • 平方差匹配 method=CV_TM_SQDIFF
    • 最好匹配为0.匹配越差,匹配值越大
  • 标准平方差匹配 method=CV_TM_SQDIFF_NORMED
    • 最好匹配为0.匹配越差,匹配值越大
  • 相关匹配 method=CV_TM_CCORR
    • 采用模板和图像间的乘法操作
    • 最好匹配是较大的数,最坏的匹配效果为0
  • 标准相关匹配 method=CV_TM_CCORR_NORMED
    • 好坏程度衡量同相关匹配CV_TM_CCORR
  • 相关匹配 method=CV_TM_CCOEFF
    • 将模版对其均值的相对值与图像对其均值的相关值进行匹配
    • 1表示完美匹配,-1表示匹配很差,0表示没有任何相关性(随机序列)
    • 其中
  • 标准相关匹配 method=CV_TM_CCOEFF_NORMED
    • 好坏程度衡量同相关匹配 CV_TM_CCOEFF

参见CV学习笔记(十一):模板匹配[2]

3.测试用例

代码语言:javascript
复制
def template_demo():
    tpl=cv.imread("./images/lena_face.png")   #模板图
    target=cv.imread("./images/lena.jpg")     #检测图
    cv.imshow("template image",tpl)
    cv.imshow("target image",target)
    #匹配算法
    methods=[cv.TM_SQDIFF_NORMED,cv.TM_CCORR_NORMED,cv.TM_CCOEFF_NORMED]
    th,tw=tpl.shape[:2]    #获取模板的高,宽
    for md in methods:
        print(md)
        result=cv.matchTemplate(target,tpl,md)
        min_val,max_val,min_loc,max_loc=cv.minMaxLoc(result)  #返回最小值,最大值,最小值位置,最大值位置
        if md == cv.TM_SQDIFF_NORMED:    #如果是标准平方差匹配,0表示匹配结果最好,取最小值
            tl=min_loc
        else:                             #如果是剩下的两种方法,值越大表示匹配越好,因而选最大值
            tl=max_loc
        br=(tl[0]+tw,tl[1]+th)   #矩形右下角坐标
        cv.rectangle(target,tl,br,(0,0,255),2)
        cv.imshow("match-"+np.str(md),target)
        #cv.imshow("match-" + np.str(md), result)

测试结果:

单从此次测试结果来看标准平方差匹配效果好一点

参考资料

[1]

python+opencv3.3视频教学 基础入门: https://www.bilibili.com/video/BV1QW411F7e7?p=1

[2]

CV学习笔记(十一):模板匹配: https://zhuanlan.zhihu.com/p/110425960

本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2020-11-19,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 快学Python 微信公众号,前往查看

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

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

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 1.模板匹配原理
  • 2.模板匹配算法
  • 3.测试用例
    • 参考资料
    领券
    问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档