博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
template tracking(基于模板的跟踪)
阅读量:4148 次
发布时间:2019-05-25

本文共 1093 字,大约阅读时间需要 3 分钟。

基于模板匹配的目标跟踪算法,它的基本思想是:首先我们将要跟踪的目标选定并保存好,然后在每一帧来临的时候,我们在整个图像中寻找与这个目标最相似的,我们就相信这个就是目标了。

那如何判定图像与目标图像的相似性呢?这就需要使用相关性的一些东西。在opencv中其实已经给我们实现了模板匹配算法了,那就是函数 matchTemplate( InputArray image, InputArray templ,OutputArray result, int method );其中image是输入图像,templ是模板图像(或者目标图像),result是输出矩阵,这个矩阵中的每一个点的值表示image与模板templ的匹配程度,method是判定相似性使用的方法,在opencv中method,有如下:

/* Template matching methods */

enum
{
    CV_TM_SQDIFF        =0,
    CV_TM_SQDIFF_NORMED =1,
    CV_TM_CCORR         =2,
    CV_TM_CCORR_NORMED  =3,
    CV_TM_CCOEFF        =4,
    CV_TM_CCOEFF_NORMED =5
};

其中,

1.CV_TM_SQDIFF 平方差匹配法,最好的匹配为0,值越大匹配越差;(越小的值表示越匹配)

2.CV_TM_SQDIFF_NORMED 归一化平方差匹配法;(越小的值表示越匹配)
3.CV_TM_CCORR 相关匹配法,采用乘法操作,数值越大表明匹配越好;(越大的值表示越匹配)
4.CV_TM_CCORR_NORMED 归一化相关匹配法;(越大的值表示越匹配)
5.CV_TM_CCOEFF 相关系数匹配法,最好的匹配为1,-1表示最差的匹配;(越大的值表示越匹配)
6.CV_TM_CCOEFF_NORMED 归一化相关系数匹配法;(越大的值表示越匹配)

在这里,CV_TM_SQDIFF为:Sumof Squared Difference (SSD) 差值的平方和。

下面使用vs2010+opencv2.4.6,对给定的视频的文件,首先先显示第一帧,然后我们用鼠标框选要跟踪的目标,然后跟踪器开始跟踪每一帧,还需要注意的是,在跟踪的过程中,我们需要随时更新我们要跟踪的目标,即在跟踪t帧的时候,也就是在第t帧寻找目标的时候,是与t-1帧中我们找到的目标来进行比较的。这样目标的外观变化就会及时的更新。这个就叫做online tracking (在线跟踪)。当然了,这个策略会导致跟踪漂移的问题。

参考1:

参考2:,

参考3:,

参考4:

转载地址:http://fbpti.baihongyu.com/

你可能感兴趣的文章
栈和堆的空间大小 C++
查看>>
什么是缓冲区溢出 C++
查看>>
sizeof C++
查看>>
使用指针有哪些好处? C++
查看>>
引用还是指针?
查看>>
checkio-non unique elements
查看>>
checkio-medium
查看>>
checkio-house password
查看>>
checkio-moore neighbourhood
查看>>
checkio-the most wanted letter
查看>>
Redis可视化工具
查看>>
学习指南!Android面试知识点总结宝典助你通关!聪明人已经收藏了!
查看>>
学海无涯!Android性能优化之APK优化,已拿到offer
查看>>
太牛了!渣本毕业两年经验,安卓系列学习进阶视频
查看>>
太牛了!这篇文章可以满足你80%日常工作!内含福利
查看>>
太赞了!Flutter全方位深入探索,大厂内部资料
查看>>
太赞了!没想到一个Handler还有中高级几种问法,进阶学习资料!
查看>>
字节跳动Android岗面试题;GitHub标星1w的安卓架构师必备技能,论程序员成长的正确姿势
查看>>
字节跳动Android岗面试题;这些细节在Android面试上要注意了!面试心得体会
查看>>
大牛手把手带你!一次违反常规的安卓大厂面试经历,3面直接拿到offer
查看>>