模板匹配TemplateMatching是在图像中寻找目标的方法之一。基本原理就是在一副图像中寻找和模板图像patch最相似的区域。
在opencv中有对应的函数可以调用:
void matchTemplate(const Mat& image,const Mat& templ,Mat& result,int method);
该函数的功能为,在输入原图像image中滑动框,寻找各个位置与模板图像templ的相似度,并将结果保存在结果矩阵result中,该矩阵的每一个点的亮度表示与模板temple的匹配程度,然后可以通过函数minMaxLocal定位矩阵result中的最大值(该函数也可以确定最小值)。问题:通过什么区评价两个图像相似呢?这个评价准则就是参数method,它可以有一下值(匹配的方法):
CV_TM_SQDIFF 平方差匹配法,最好的匹配为0,值越大匹配越差;
CV_TM_SQDIFF_NORMED 归一化平方差匹配法;
CV_TM_CCORR 相关匹配法,采用乘法操作,数值越大表明匹配越好;
CV_TM_CCORR_NORMED 归一化相关匹配法;
CV_TM_CCOEFF 相关系数匹配法,最好的匹配为1,-1表示最差的匹配;
CV_TM_CCOEFF_NORMED 归一化相关系数匹配法;
前两种方法为值越小表示越匹配,后四种方法值越大越匹配。
其中:
CV_TM_SQDIFF为:Sumof Squared Difference(SSD)差值的平方和:
R(x,y)=sum(T(x',y')-I(x+x',y+y'))^2|(x',y')
CV_TM_CCORR为:Cross Correlation 互相关:
R(x,y)=sum(T(x',y')*I(x+x',y+y'))|(x',y')
其实把SSD可以看成是欧式距离的平方,把SSD展开,可以得到:
R(x,y)=sum(T^2(x',y')-2T(x',y')*I(x+x',y+y')+I^2(x+x',y+y')
可以看到,上面公式第一项(模板图像T的能量)是一个常数,第三项(图像I局部的能量)也可以近似一个常数,那么可以看到,剩下的第二项就是和cross correlation一样的,也就是互相关项。而SSD是数值越大,相似度越小,cross correlation是数值越大,相似度越大。
另外,为了适应目标的变化,就需要随时更新我们要跟踪的目标,换句话说,在跟踪t帧的时候,也就是在第t帧寻找目标的时候,是与t-1帧中我们找到的目标来进行比较的。这样目标的外观变化就会及时更新。这个就是在线跟踪的方法了。但是会有跟踪漂移的问题~
相关推荐
目标跟踪方法实现,通过模板匹配的方法进行跟踪 先用鼠标选择要跟踪的目标,再利用模板匹配的方法实现实时帧的跟踪 附源代码和测试视频以及更多视频的网站链接
复杂场景下目标跟踪的多模板匹配算法研究,可以学习一下。
基于模板匹配的目标跟踪算法,鼠标选中目标区域,通过模板匹配算法进行目标跟踪,实时更新目标模板。该算法可与其他跟踪算法或者目标检测算法结合,实现更好效果。
【作品名称】:基于 python的SORT多目标跟踪算法+opencv模板匹配算法实战——多个小球跟踪 【适用人群】:适用于希望学习不同技术领域的小白或进阶学习者。可作为毕设项目、课程设计、大作业、工程实训或初期项目...
由于模板匹配中像素点r、g、b颜色值计算存在多对一缺陷,加之背景特征的影响,视觉跟踪中模板匹配往往得不到全局最优解。为此提出模糊隶属度概念和新的相似度指标公式,修正颜色值计算缺陷,相近似颜色值聚类,从而...
为了提高运动目标跟踪算法在复杂场景下的稳定性,提出了一种将小波变换与模扳匹配相融合的跟踪方法。它首先对图像序列采用滤波器组实现运动目标分割,再通过对图像序列小波变换以确定目标匹配子图像,最终使用模板...
针对传统的目标跟踪算法需要人工选择目标且不能较好地处理目标的尺度变化问题,提出融合光流检测与模板匹配的目标跟踪算法。首先通过结合光流信息与图像分割结果从视频中自动地检测和提取运动目标,实现基于检测的...
一种基于模板匹配的运动目标跟踪方法
计算机视觉作业基于直方图的自适应阈值分割、聚类实现纹理图像分割、模板匹配、目标跟踪、背景建模、目标检测python源码.zip 计算机视觉作业 基于直方图的自适应阈值分割、利用聚类技术实现纹理图像分割、模板匹配...
"基于模板匹配的目标跟踪技术研究与实现" 本文旨在研究和实现基于模板匹配的目标跟踪技术。目标跟踪是计算机视觉和图像处理领域中的一个重要课题,对于视频监控、自动驾驶、人机交互等领域具有重要意义。 1.1 研究...
计算机视觉作业:基于直方图的自适应阈值分割、利用聚类技术实现纹理图像分割、模板匹配技术、目标跟踪、背景建模、目标检测,含有代码注释,新手也可看懂,个人手打98分项目,导师非常认可的高分项目,毕业设计、...
这篇论文详细探讨了基于模板匹配的目标跟踪技术,从研究背景和现状出发,介绍了OpenCV视觉库的关键技术和使用方法,然后详细设计并实现了模板匹配算法,最后进行了实验验证和结果分析,为实际应用提供了理论和技术...
OpenCV3/C++ 使用Tracker实现简单目标跟踪 OpenCV3 提供了多种 Tracker 算法来实现目标跟踪,包括 MIL、OLB、MedianFlow、TLD、KCF 等。这些算法可以根据不同的场景选择适合的跟踪器来实现目标跟踪。 MIL Tracker...
在这个场景中,我们使用OpenCV库来实现对视频中车辆的模板匹配和跟踪。OpenCV是一个强大的开源计算机视觉库,它提供了丰富的功能,包括图像处理、特征检测、对象识别等。 首先,我们需要理解视频处理的基本流程。...
本程序是基于模板匹配的简单跟踪方法,思想很简单,把要跟踪的目标保存,然后在每帧来临时,整幅图像中寻找与这个目标最相似的图像块,这个就是目标。为了适应目标的变化,上帧匹配目标,作为下一帧的模板,实现在线...
基于模板匹配的目标跟踪技术是计算机视觉领域中的一个重要研究方向,主要应用于监控、自动驾驶、机器人导航等领域。本文将探讨这一技术的研究背景、发展现状以及OpenCV视觉库在其中的应用。 1. 研究背景与意义 模板...