Opencv实验合集——实验六:模板匹配

这篇具有很好参考价值的文章主要介绍了Opencv实验合集——实验六:模板匹配。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

1.概念

模板匹配旨在在图像中找到与给定模板最相似的部分。其核心思想是通过滑动模板,计算每个位置与模板的相似性,然后找到最匹配的位置。这一过程常涉及选择匹配度量方法,如平方差匹配、归一化平方差匹配、相关性匹配等。模板匹配在目标检测、物体识别等领域有广泛应用,尽管对于光照、尺度、旋转等变化敏感,但仍然是图像处理中常用的技术之一。

2.有关的函数方法

cv.matchTemplate(img, template, method):这一行代码执行模板匹配操作。它采用三个参数:

img:表示待搜索的原始图像。

template:表示要在原始图像中搜索的模板图像。

method:表示匹配方法,即模板匹配算法的选择。这可以是以下之一:     

  • cv.TM_SQDIFF:平方差匹配法
  • cv.TM_SQDIFF_NORMED:归一化平方差匹配法
  • cv.TM_CCORR:相关性匹配法
  • cv.TM_CCORR_NORMED:归一化相关性匹配法
  • cv.TM_CCOEFF:系数匹配法
  • cv.TM_CCOEFF_NORMED:归一化系数匹配法

cv.matchTemplate 返回一个二维数组(图像),表示匹配程度,该数组的大小是原始图像减去模板图像的大小加一。 

min_val, max_val, min_loc, max_loc = cv.minMaxLoc(res):这一行代码用于找到匹配结果中的最小值、最大值以及它们的位置。具体来说:

  • min_val:是匹配结果中的最小值。
  • max_val:是匹配结果中的最大值。
  • min_loc:是最小值的位置(x,y坐标)。
  • max_loc:是最大值的位置(x,y坐标)。

3.匹配算法有关的原理: 

1.TM_CCOEFF (系数匹配法):

  • 原理:计算模板与图像的协方差。
  • 概念:协方差表示两个变量之间的关联程度,正值表示正相关,负值表示负相关。
  • 适用:适用于模板和图像中存在明显对比度差异的情况。

协方差具体计算公式:

在实际操作中,可以使用矩阵运算来高效地计算协方差矩阵。如果 X 和 Y 分别是 m×n 和 m×p 的矩阵,这将产生一个 n×p 的协方差矩阵,

 2.TM_CCOEFF_NORMED (归一化系数匹配法):

  • 原理:计算模板与图像的归一化协方差。
  • 概念:通过标准化协方差,将匹配结果归一化到范围 [-1, 1]。
  • 适用:适用于处理不同尺度和对比度的图像。

3.TM_CCORR (相关性匹配法):

  • 原理:计算模板与图像的相关性。
  • 概念:相关性表示两个信号之间的相似性程度,值越大表示匹配越好。
  • 适用:适用于处理模板和图像灰度变化较小的情况。

R(x,y)=  [I(x+i,y+j)⋅T(i,j)]

  • I(x+i,y+j) 是图像在位置 (x+i,y+j) 的像素值;
  • T(i,j) 是模板在位置 (i,j) 的像素值;
  • M 和 N 分别是模板的高度和宽度

在上述公式中,通过将模板与图像的对应像素值相乘,然后将所有乘积相加,得到一个相关性值。这个值越大,表示在图像的该位置与模板更相似

4.TM_CCORR_NORMED (归一化相关性匹配法):

  • 原理:计算模板与图像的归一化相关性。
  • 概念:通过标准化相关性,将匹配结果归一化到范围 [0, 1]。
  • 适用:适用于处理不同尺度和对比度的图像。

5.TM_SQDIFF (平方差匹配法):

  • 原理:计算模板与图像的像素差的平方和。
  • 概念:值越小表示匹配越好。
  • 适用:适用于处理灰度变化较大的图像。

 6.TM_SQDIFF_NORMED (归一化平方差匹配法):

  • 原理:计算模板与图像的归一化平方差。
  • 概念:通过标准化平方差,将匹配结果归一化到范围 [0, 1]。
  • 适用:适用于处理不同尺度和对比度的图像。

示例代码:

效果展示:

输入原图:

Opencv实验合集——实验六:模板匹配,opencv,人工智能,计算机视觉

Opencv实验合集——实验六:模板匹配,opencv,人工智能,计算机视觉

输出图:

Opencv实验合集——实验六:模板匹配,opencv,人工智能,计算机视觉

Opencv实验合集——实验六:模板匹配,opencv,人工智能,计算机视觉

Opencv实验合集——实验六:模板匹配,opencv,人工智能,计算机视觉

Opencv实验合集——实验六:模板匹配,opencv,人工智能,计算机视觉

Opencv实验合集——实验六:模板匹配,opencv,人工智能,计算机视觉

Opencv实验合集——实验六:模板匹配,opencv,人工智能,计算机视觉

本次实验主要展示了图像处理中的模板匹配功能,模板匹配功能主要还是通过对模板和图像的像素点的计算进行匹配,没有过多考虑到光照等其他方面的因素,可能比较适合灰度值图像,匹配出来的效果也因人而异,效果不是特别好,所以在此做个了解学习

如有错误或遗漏,希望小伙伴批评指正!!!! 

希望这篇博客对你有帮助!!!!

 实验五:Opencv实验合集——实验五:高动态范围-CSDN博客

实验七:Opencv实验合集——实验七:二维码和条形码匹配-CSDN博客文章来源地址https://www.toymoban.com/news/detail-781284.html

到了这里,关于Opencv实验合集——实验六:模板匹配的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包赞助服务器费用

相关文章

  • 用OpenCV进行模板匹配

    用OpenCV进行模板匹配

    今天我们来研究一种传统图像处理领域中对象检测和跟踪不可或缺的方法——模板匹配,其主要目的是为了在图像上找到我们需要的图案,这听起来十分令人兴奋。 所以,事不宜迟,让我们直接开始吧! 模板匹配的算法的核心十分简单:它将模板与源图像中的每个部分进行

    2024年02月10日
    浏览(21)
  • Opencv——图像模板匹配

    Opencv——图像模板匹配

    什么是模板匹配呢? 看到这里大家是否会觉得很熟悉的感觉涌上心头!在人脸识别是不是也会看见 等等。 模板匹配可以看作是对象检测的一种非常基本的形式。使用模板匹配,我们可以使用包含要检测对象的“模板”来检测输入图像中的对象。 参数:(img: 原始图像、

    2024年02月16日
    浏览(14)
  • OpenCV(11):模板匹配实例讲解

    OpenCV(11):模板匹配实例讲解

    在OpenCV中,模板匹配是一种图像处理技术,用于在一个大的图像中查找和定位一个小的目标图像(也称为模板)。 通俗而言,就是通过一张图片找到和另一张图片相似的部分。 从此章开始,opencv系列所有的之后更新的博客都会更注重实际应用,而不是仅仅简单讲解一个小方

    2024年02月04日
    浏览(9)
  • 008 OpenCV matchTemplate 模板匹配

    008 OpenCV matchTemplate 模板匹配

    目录 一、环境 二、模板匹配算法原理 三、代码演示 本文使用环境为: Windows10 Python 3.9.17 opencv-python 4.8.0.74 cv.matchTemplate 是OpenCV库中的一个函数,用于在图像中查找与模板匹配的特征。它的主要应用场景是在图像处理、计算机视觉和模式识别等领域。 算法原理: cv.matchTempl

    2024年02月05日
    浏览(8)
  • opencv 多角度模板匹配

    opencv 多角度模板匹配

    总结一下实现多角度模板匹配踩的坑 一 、多角度匹配涉及到要使用mask,首先opencv matchTemplateMask自带的源码如下: 可以看到使用用了四次dft来计算卷积,目标图像要与mask卷三次,来计算目标图像在模板区域内的和,平方和。其中最后一次CCorr(I, mask2)可以省略掉,它跟CCorr(I

    2024年02月07日
    浏览(13)
  • OPENCV C++(十二)模板匹配

    OPENCV C++(十二)模板匹配

    正常模板匹配函数  这里0代表的是方法,一般默认为0就ok  img是输入图像 templatee是模板 resultmat是输出 对于输出的说明: 就是说result图像中的每一个点的值代表了一次相似度比较结果。  如图可知,模板在待测图像上每次在横向或是纵向上移动一个像素,并作一次比较计算

    2024年02月13日
    浏览(13)
  • 【OpenCV】第十五章: 模板匹配

    【OpenCV】第十五章: 模板匹配

    第十五章: 模板匹配 模板匹配就是在给定的图片中查找和模板最相似的区域。 实现的方法是:将模板在图片上滑动(从左向右,从上向下),遍历所有滑窗,计算匹配度,将所有计算结果保存在一个矩阵种,并将矩阵中匹配度最高的值作为匹配结果。 一、单模板匹配 1、匹配函

    2024年02月02日
    浏览(14)
  • Opencv (C++)系列学习---模板匹配

    Opencv (C++)系列学习---模板匹配

    目录 1.模板匹配的定义 2.API介绍 3.寻找最优匹配位置(匹配后的配套操作) 4.具体代码         模板匹配就是在整个图像区域发现与给定子图像匹配的小块区域,该匹配方法并不是基于直方图,而是使用一个图像块在输入图像上进行“”滑动“”。(也就是在图像上按照

    2024年02月08日
    浏览(9)
  • opencv直方图与模板匹配

    opencv直方图与模板匹配

    直方图 cv2.calcHist(images,channels,mask,histSize,ranges) images: 原图像图像格式为 uint8 或 float32。当传入函数时应 用中括号 [] 括来例如[img] channels: 同样用中括号括来它会告函数我们统幅图 像的直方图。如果入图像是灰度图它的值就是 [0]如果是彩色图像 的传入的参数可以是 [0][1][2] 它

    2024年02月12日
    浏览(11)
  • OpenCV自学笔记十八:模板匹配

    模板匹配是一种在图像中寻找指定模式的方法。OpenCV库提供了用于模板匹配的函数,可以帮助我们在图像中定位和识别特定的模式。下面是模板匹配的基础原理和一个示例: 模板匹配通过在待匹配图像上滑动一个固定大小的模板图像,并计算模板与图像之间的相似度来寻找匹

    2024年02月07日
    浏览(12)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包