OpenCV2编程手册笔记之 10.5应用光流法跟踪视频中的特征点

    这次,我们用举例的方法来了解一下视频处理,我们采用上一篇博客中用到的代码,使用类继承来减少代码量

    这次的目标是跟踪移动物体,我们先创建一个FeatureTrack类,它继承自VideoProcess类

    在看这个类之前,我们先介绍几个函数

    首先是calcOpticalFlowPyrLK,这个函数的作用原理是光流法,它输入的点(第三个参数)是图像2中的角点坐标,它将会根据输入的图像1和图像2,对这两张图中的亮度进行比较,这些比较都是在输入的角点坐标附近进行比较,得出最终的运动角点坐标(第四个参数),也就是可能的运动角点

void calcOpticalFlowPyrLK( InputArray prevImg, InputArray nextImg,
                                        InputArray prevPts, InputOutputArray nextPts,
                                        OutputArray status, OutputArray err,
                                        Size winSize = Size(21,21), int maxLevel = 3,
                                        TermCriteria criteria = TermCriteria(TermCriteria::COUNT+TermCriteria::EPS, 30, 0.01),
                                        int flags = 0, double minEigThreshold = 1e-4 );
    第一个参数是第一幅图像

    第二个参数是第二幅图像

    第三个参数是第一幅图像中的特征点

    第四个参数是寻找到的移动过后的特征点

    第五个参数表示跟踪成功,跟踪成功时返回1

    第六个参数表示跟踪失败,给出提示,但我们一般只是用status


    然后是goodFeaturesToTrack,这个函数用来确定所有角点

void goodFeaturesToTrack( InputArray image, OutputArray corners,
                                     int maxCorners, double qualityLevel, double minDistance,
                                     InputArray mask = noArray(), int blockSize = 3,
                                     bool useHarrisDetector = false, double k = 0.04 );
    第一个参数是输入图像

    第二个参数是返回的角点坐标

    第三个参数是最大角点数

    第四个参数是质量等级,用来确定是否选取检测到的角点

    第五个参数是最小距离,用来筛选距离较小的角点

   

<
  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值