在slam里,光流跟踪判断图像中某一物体的动态性,主要包括3个函数:
1、goodFeaturesToTrack函数
作用:提取输入图像中像素级别的角点,支持harris角点和Shi Tomasi角点。
函数原型:
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 );
参数说明:
- 第一个参数:此函数的输入参数,输入为灰度图像;
- 第二个参数:此函数的输出参数,输出为角点,保存类型为vector或数组;
- 第三个参数:表示函数提取到角点的数量最大值;
- 第四个参数:表示检测到的角点的质量等级(通常是0.10到0.01之间的数值,不能大于1.0);
- 第五个参数:表示两个角点间最小间距,以像素为单位,间距小于此像素值的像素会被合并;
- 第六个参数:一般为cv::Mat类型,维度和输入一致,mask值为0处不进行角点检测;
- 第七个参数:表示在计算角点时参与运算的区域大小,常用值为3,但是如果图像的分辨率较高则可以考虑使用较大一点的值;
- 第八个参数:表示是否使用Harris角点检测,为false,则使用Shi-Tomasi角点;
- 第九个参数:提取Harris角点用到的中间参数,一般取经验值0.04~0.06。当为Shi-Tomasi角点时,此参数不起作用;

本文介绍了Opencv在计算机视觉中用于光流跟踪的三个关键函数:goodFeaturesToTrack函数用于提取角点,cv::cornerSubPix()优化角点至亚像素级别,calcOpticalFlowPyrLK()实现基于金字塔的LK光流跟踪。这些函数在SLAM等应用中发挥重要作用,提升图像处理精度。
最低0.47元/天 解锁文章
1万+

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



