Opencv cvCalcOpticalFlowPyrLK未按预期工作
我知道这是一个有充分记录的问题,但我没有设法在网上找到一个令人满意的解决方案。来吧 我使用cvCalcOpticalFlowPyrLK来跟踪特征点的运动。我使用cvGoodFeaturesToTrack查找特征点,并使用cvFindCornerSubPix对其进行优化。我在第一帧(参考帧)中找到特征点,并使用LK跟踪这些点相对于参考帧的移动。我使用当前帧特征点更新这些点,这些点与找到的帧特征点坐标一致。以下是我观察到的: 1) cvGoodFeaturesToTrack发现的良好特征点数量很少。我试着找到100分,但我总是得到不到10分。 2) 在5-6帧之后,特征点的数量减少了50%,然后在5帧之后又减少了50个,这是在主体不运动的情况下。从某种意义上说,跟踪是不完整的,一些点被正确地跟踪了,但有些点偏离了方向 我在youtube或iphone应用程序上看过演示应用程序。帧与帧之间特征点数量的下降不是我在应用程序中看到的。所以我怀疑我设置的参数可能是错误的 这是我如何调用函数的: cvGoodFeaturesToTrack( 形象,, 本征图像, 临时图像, (小标题), &角落(u count),, 0.01(质量等级), 3(最小距离), 0, 10(块大小), 0(使用harris), 0.04(k)) cvFindCornerSubPix( 形象,, 角点, 角落(u count),, cvSize(窗口大小,窗口大小), cvSize(-1,-1), cvterm标准(CV_TERMCRIT_ITER | CV_TERMCRIT_EPS,20,0.3)) cvCalcOpticalFlowPyrLK(图像, 当前帧, rpV->pyramid_图像0, rpV->金字塔图像1, 角点, 拐角处的水流, 角落(u count),, cvSize(窗口大小,窗口大小), 10(级别), 你发现的特征, 特征错误, CVTERM标准(国际热核试验堆CV|U TERMCRIT|U EPS,20,0.3), 0); 另一件事是,我使用的是灰度相机(红外线相机)。不过我觉得这并不重要。我想知道我是否遗漏了什么重要的东西 非常感谢任何形式的帮助 谢谢,Opencv cvCalcOpticalFlowPyrLK未按预期工作,opencv,image-processing,motion-detection,opticalflow,Opencv,Image Processing,Motion Detection,Opticalflow,我知道这是一个有充分记录的问题,但我没有设法在网上找到一个令人满意的解决方案。来吧 我使用cvCalcOpticalFlowPyrLK来跟踪特征点的运动。我使用cvGoodFeaturesToTrack查找特征点,并使用cvFindCornerSubPix对其进行优化。我在第一帧(参考帧)中找到特征点,并使用LK跟踪这些点相对于参考帧的移动。我使用当前帧特征点更新这些点,这些点与找到的帧特征点坐标一致。以下是我观察到的: 1) cvGoodFeaturesToTrack发现的良好特征点数量很少。
开尔文有几个问题:
- 如果您正在跟踪的功能看起来不像棋盘格的角,那么调用cvFindCornerSubpix没有帮助
- 只有当视在运动大于帧与帧之间的窗口大小时,才适合使用棱锥,以获得合理的窗口大小
- 很难说为什么在没有看到图像的情况下,你没有获得足够好的特征来跟踪。也许它相当模糊