0

我知道这是一个有据可查的问题,但我没有设法在网上找到令人满意的解决方案。开始。

我正在使用 cvCalcOpticalFlowPyrLK 来跟踪特征点的运动。我使用 cvGoodFeaturesToTrack 找到特征点并使用 cvFindCornerSubPix 对其进行细化。我在第一帧(参考帧)中找到特征点,并使用 LK 跟踪这些点相对于参考帧的移动。我用找到的当前帧特征点坐标更新这些点。这是我观察到的:

1)编号。cvGoodFeaturesToTrack 找到的好的特征点很少。我试图找到 100 分,但我总是得到不到 10 分。2)编号。5-6 帧后的特征点减少了 50%,然后又减少了 50 x 5 帧,这是当主体不运动时。在某些点被正确跟踪但有些点偏离的意义上,跟踪是不完整的。

我在 youtube 或 iphone 应用程序上看到了演示应用程序。号的下降。从帧到帧的特征点不是我在我的应用程序中看到的。所以我怀疑我设置的参数可能是错误的。

这就是我调用函数的方式:

cvGoodFeaturesToTrack(image, eigen_image, temp_image,corner_point, &corner_count, 0.01(质量等级), 3(最小距离), 0, 10(块大小), 0(使用harris), 0.04(k));

cvFindCornerSubPix(图像,cornersPoint,corner_count,cvSize(WINDOW_SIZE,WINDOW_SIZE),cvSize(-1,-1),cvTermCriteria(CV_TERMCRIT_ITER | CV_TERMCRIT_EPS,20,0.3));

cvCalcOpticalFlowPyrLK(图像,currentFrame,rpV->pyramid_images0,rpV->pyramid_images1,cornersPoint,cornersCurrent,corner_count,cvSize(WINDOW_SIZE,WINDOW_SIZE),10(级别),features_found,feature_errors,cvTermCriteria(CV_TERMCRIT_ITER | CV_TERMCRIT_EPS),20,0。 );

另一件事是我使用的是灰度相机(红外线相机)。不过,我并不重要。我想知道我是否在这里遗漏了任何重要的东西。

非常感谢任何形式的帮助。

谢谢, 开尔文

4

1 回答 1

0

有几个问题:

  • 如果您正在跟踪的功能看起来不像棋盘的角落,则调用 cvFindCornerSubpix 没有帮助。
  • 仅当视在运动大于逐帧的窗口大小时,才适合使用金字塔,以获得合理的窗口大小。
  • 很难说为什么您没有看到您的图像就没有获得足够好的功能来跟踪。也许它相当模糊?
于 2013-10-10T00:48:43.443 回答