目标跟踪:模板匹配

来源:互联网 发布:vb中instr函数 编辑:程序博客网 时间:2024/05/13 01:39


在一幅图像中寻找和模板图像(patch)最相似的区域。

1.判断相似性:

OpenCV中有对应的函数——void matchTemplate( const Mat& image, const Mat& templ, Mat&result, int method )

该函数的功能为,在输入源图像Sourceimage(I)中滑动框,寻找各个位置与模板图像Template image(T)的相似度,并将结果保存在结果矩阵result matrix(R)中。该矩阵的每一个点的亮度表示与模板T的匹配程度。然后可以通过函数minMaxLoc定位矩阵R中的最大值(该函数也可以确定最小值)。那通过什么去评价两个图像相似呢?这就存在一个评价准则,也就是参数method,它可以有以下值(匹配的方法):

  • CVTMSQDIFF 平方差匹配法,最好的匹配为0,值越大匹配越差;

  • CVTMSQDIFF_NORMED 归一化平方差匹配法;

  • CVTMCCORR 相关匹配法,采用乘法操作,数值越大表明匹配越好;

  • CVTMCCORR_NORMED 归一化相关匹配法;

  • CVTMCCOEFF 相关系数匹配法,最好的匹配为1,-1表示最差的匹配;

  • CVTMCCOEFF_NORMED 归一化相关系数匹配法;

前面两种方法为越小的值表示越匹配,后四种方法值越大越匹配。

2.更新跟踪目标

在第t帧寻找目标的时候,是与t-1帧中我们找到的目标来进行比较的。这样目标的外观变化就会及时的更新,但容易导致跟踪漂移。

3.示例代码

基于VS2013+OpenCV 2.4.9:


参考文献:

  1. 模板匹配中差值的平方和(SSD)与互相关准则的关系


0 0
原创粉丝点击