我知道这是一个有据可查的问题,但我没有设法在网上找到令人满意的解决方案。开始。
我正在使用 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。 );
另一件事是我使用的是灰度相机(红外线相机)。不过,我并不重要。我想知道我是否在这里遗漏了任何重要的东西。
非常感谢任何形式的帮助。
谢谢, 开尔文