0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

什么是模板匹配?模板匹配的原理讲解 图像处理与模板匹配算法

嵌入式应用开发 来源:嵌入式应用开发 作者:嵌入式应用开发 2022-05-05 09:25 次阅读

一:什么是模板匹配?

在OpenCV教程中这样解释模板匹配:

模板匹配是一项在一幅图像中寻找与另一幅模板图像最匹配(相似)部分的技术.

这里说的模板是我们已知的小图像,模板匹配就是在一副大图像中搜寻目标。模板就是我们已知的在图中要找的目标,且该目标同模板有相同的尺寸、方向和图像,通过一定的算法可以在图中找到目标,确定其坐标位置。

二:模板匹配的原理

用通俗的语言来解释模板的匹配原理:

在要检测的图像上,从左到右,从上到下遍历这一幅图像,从上到下计算模板与重叠子图像的像素匹配度,如果匹配的程度越大,这说明相同的可能性越大。

pYYBAGJvqqWAIFSGAAAZQJxDPhs273.jpg

实现过程:

①:准备两幅图像:

  1. 图像 (I): 在这幅图像里,我们希望找到一块和模板匹配的区域
  2. 模板 (T): 将和原图像比照的图像块
poYBAGJvqqWAYh1EAAA6DVs3B7U407.jpg

②:为了确定匹配区域, 我们滑动模板图像和原图像进行比较

pYYBAGJvqqWADXGjAABKYM3U6fo656.jpg

③:使用模板遍历图像

通过滑动, 从左往右,从上往下. 在每一个位置, 都进行一次度量计算来表明模板和原图像的特定区域的相似性。

对于 T 覆盖在 I 上的每个位置,你把度量值保存到结果图像矩阵(R) 中. 在R中的每个位置 (x,y) 都包含匹配度量值:

poYBAGJvqqWAXuiTAAC7jvpJhx8489.jpg

上图是使用标准相关匹配方法处理后的结果图像 R . 最白的位置代表最高的匹配. 红色椭圆框住的位置很可能是结果图像矩阵中的最大数值, 所以这个区域被认为是匹配的.

三:使用OpenCV实现

我们调用OpenCV中的函数 matchTemplate 实现了模板匹配算法:

①:平方差匹配 method=CV_TM_SQDIFF

这类方法利用平方差来进行匹配,最好匹配为0.匹配越差,匹配值越大.

pYYBAGJvqqWAb7zKAAAHuOpMajY941.jpg

②:标准平方差匹配 method=CV_TM_SQDIFF_NORMED

poYBAGJvqqWAV_leAAAK3MMVbh0635.jpg

③:相关匹配 method=CV_TM_CCORR

这类方法采用模板和图像间的乘法操作,所以较大的数表示匹配程度较高,0标识最坏的匹配效果.

pYYBAGJvqqWAPwzBAAAHjlfFXtk037.jpg

④:标准相关匹配 method=CV_TM_CCORR_NORMED

poYBAGJvqqWAdEQ5AAAK1GsF52s351.jpg

⑤:相关匹配 method=CV_TM_CCOEFF

这类方法将模版对其均值的相对值与图像对其均值的相关值进行匹配,1表示完美匹配,-1表示匹配很差,0表示没有任何相关性(随机序列).

pYYBAGJvqqWAJIjzAAAHB-dugA0587.jpg

在这里

poYBAGJvqqWAL53pAAAKXzzxxuA441.jpg

⑥:标准相关匹配 method=CV_TM_CCOEFF_NORMED

pYYBAGJvqqaAW8K4AAALcBVdMZg026.jpg

代码实现:

poYBAGJvqqaAe_4GAAChi4MCRpA245.jpg

在这次匹配中我们主要使用了matchTemplate和minMaxLoc这两个函数:

matchTemplate:函数的完整表达:

matchTemplate(image, templ, method[, result[, mask]])
Image:参数表示待搜索源图像,必须是8位整数或32位浮点。
Templ:参数表示模板图像,必须不大于源图像并具有相同的数据类型。
Method:参数表示计算匹配程度的方法。
Result:参数表示匹配结果图像,必须是单通道32位浮点。如果image的尺寸为W x H,templ的尺寸为w x h,则result的尺寸为(W-w+1)x(H-h+1)。

minMaxLoc函数的完整表达:

minMaxLoc(src[, mask],minVal, maxVal, minLoc, maxLoc)
src参数表示输入单通道图像。
mask参数表示用于选择子数组的可选掩码。
minVal参数表示返回的最小值,如果不需要,则使用NULL。
maxVal参数表示返回的最大值,如果不需要,则使用NULL。
minLoc参数表示返回的最小位置的指针(在2D情况下); 如果不需要,则使用NULL。
maxLoc参数表示返回的最大位置的指针(在2D情况下); 如果不需要,则使用NULL。

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • 图像处理
    +关注

    关注

    26

    文章

    1224

    浏览量

    55806
  • 算法
    +关注

    关注

    23

    文章

    4451

    浏览量

    90745
  • OpenCV
    +关注

    关注

    29

    文章

    611

    浏览量

    40764
  • 模板匹配
    +关注

    关注

    0

    文章

    12

    浏览量

    7796
收藏 人收藏

    评论

    相关推荐

    Labview图像处理模板匹配

    本帖最后由 1453544229 于 2015-8-18 19:18 编辑 模板匹配程序的效果图如下:程序中的操作步骤见前面板,这个例子是模板匹配的入门例子。
    发表于 08-18 19:18

    labview 视觉 多模板匹配 教程

    ` 本帖最后由 wcl86 于 2019-9-24 17:12 编辑 Labview视觉多模板匹配教程 源码回复可见:[hide][/hide]谈到labview的定位,有很多人吐槽其没有多模板
    发表于 09-24 16:59

    labview 视觉 多模板匹配 教程

    `谈到labview的定位,有很多人吐槽其没有多模板匹配的功能,今天就给大家介绍下,labview视觉自带的多模板匹配功能。多模板
    发表于 07-23 20:46

    基于HALCON的模板匹配方法总结

    对象跟踪这些研究,从中取得较好地效果,简化了用其他工具,比如VC++来开发地过程。在 VC下往往针对不同地图像格式,就会弄地很头疼,更不用说编写图像特征提取、模板建立和搜寻模板地代码呢
    发表于 09-19 06:13

    一种改进的自适应模板匹配

    本文提出了一种基于数据流修正的自适应模板匹配定位方法。该方法首先在图像处理的基础上,进行模板匹配
    发表于 08-17 08:05 21次下载

    基于改进模板匹配的芯片缺陷检测方法

    提出了一种改进的模板匹配方法。该方法是在传统的模板匹配方法的基础上,通过对模板匹配
    发表于 09-03 15:15 9次下载

    基于模板匹配图像跟踪技术

    为了解决传统模板匹配方法跟踪图像时遇到的问题,提出了在跟踪过程中采用变模板匹配的方法。该方法较好地解决了传统方法的局限性,通过实验比较了使用
    发表于 12-20 17:01 0次下载

    基于帧间差分与模板匹配相结合的运动目标检测

    基于图形处理器单元(GPU)提出了一种帧间差分与模板匹配相结合的运动目标检测算法。在CUDA-SIFT(基于统一计算设备架构的尺度不变特征变换)算法
    发表于 04-05 15:31 50次下载
    基于帧间差分与<b class='flag-5'>模板</b><b class='flag-5'>匹配</b>相结合的运动目标检测

    模板匹配

    《OpenCV3编程入门》书本配套源代码:模板匹配
    发表于 06-06 15:39 5次下载

    基于模板匹配的目标跟踪算法在红外热成像跟踪技术上的应用

    基于模板匹配的目标跟踪算法在红外热成像跟踪技术上的应用
    发表于 02-08 00:57 19次下载

    基于边缘的模板匹配适用部分遮挡和光照变化情形(附源码)

    介绍 模板匹配是一个图像处理问题,当其姿态(X,Y,θ)未知时,使用另一张搜索图像中的模板
    的头像 发表于 10-13 15:20 2816次阅读
    基于边缘的<b class='flag-5'>模板</b><b class='flag-5'>匹配</b>适用部分遮挡和光照变化情形(附源码)

    OpenMV如何实现旋转模板匹配

    OpenCV中模板匹配不支持旋转角度、不支持多尺度跟多对象模板匹配,同时匹配速度比较慢,针对不支持旋转
    的头像 发表于 01-14 10:21 1370次阅读

    ​详细剖析模板匹配

    工作方法,在带检测图像上,从左到右,从上向下计算模板图像与重叠子图像匹配度,匹配程度越大,两者
    的头像 发表于 03-03 10:10 572次阅读

    模板匹配算法的改进及在自动发牌机中的应用

    电子发烧友网站提供《模板匹配算法的改进及在自动发牌机中的应用.pdf》资料免费下载
    发表于 11-08 09:53 0次下载
    <b class='flag-5'>模板</b><b class='flag-5'>匹配</b><b class='flag-5'>算法</b>的改进及在自动发牌机中的应用

    OpenCV边缘模板匹配算法原理详解

    ,悲喜交加,充分感受到了理想与现实的距离,不过没关系,这里介绍一种新的模板匹配算法,主要是基于图像边缘梯度,它对图像光照与像素迁移都有很强的
    的头像 发表于 12-07 10:56 466次阅读
    OpenCV边缘<b class='flag-5'>模板</b><b class='flag-5'>匹配</b><b class='flag-5'>算法</b>原理详解