1. 基本原理


2. 稀疏光流 - KLT

稀疏光流 -- 流程:

3. 稠密光流 - HF
稠密光流跟踪是将当前帧的所有像素点与前一帧比较,有变化的标记出来。对比的点比较多,不是对比变化的那几个特征点。所以速度较慢。没有稀疏光流的速度快。但有的时候效果比稀疏光流要好。

4. 相关API
(1)opencv中的goodFeaturesToTrack函数可以计算Harris角点和shi-tomasi角点,但默认情况下计算的是shi-tomasi角点,函数原型如下:
void cv::goodFeaturesToTrack( InputArray _image, OutputArray _corners,
int maxCorners, double qualityLevel, double minDistance,
InputArray _mask, int blockSize,
bool useHarrisDetector, double harrisK )
参数解释:
image:8位或32位浮点型输入图像,单通道
corners:保存检测出的角点
maxCorners:角点数目最大值,如果实际检测的角点超过此值,则只返回前maxCorners个强角点
qualityLevel:角点的品质因子
minDistance:对于初选出的角点而言,如果在其周围minDistance范围内存在其他更强角点,则将此角点删除
mask:指定感兴趣区,如不需在整幅图上寻找角点,则用此参数指定ROI
blockSize:计算协方差矩阵时的窗口大小
useHarrisDetector:指示是否使用Harris角点检测,如不指定,则计算shi-tomasi角点
harrisK:Harris角点检测需要的k值
(2)计算一个稀疏

本文介绍了光流的基本原理,包括稀疏光流的KLT算法和稠密光流的HF方法。在稀疏光流中,通过Lucas-Kanade迭代法跟踪特征点,而在稠密光流中,所有像素点都被比较以检测运动。OpenCV库提供了goodFeaturesToTrack和calcOpticalFlowPyrLK等API用于角点检测和光流计算。代码示例展示了如何使用这些API进行稀疏和稠密光流跟踪。
最低0.47元/天 解锁文章
2775

被折叠的 条评论
为什么被折叠?



