我正在编写一个代码,我必须找到我感兴趣的所有角点的轨迹。所以,同样,我使用了 LKPyr 光流,它使用前一个图像的角点并在当前图像中找到它们图片。我正在逐帧使用光流,即第 1 帧和第 2 帧,然后是第 2 帧和第 3 帧。所以,我认为我在上一次迭代中找到的第 2 帧角特征将是光流的当前特征,但是并非如此,每次我做Good Features to Track时点都会改变,问题是,对于轨迹点,我需要跟踪当前点并在它们到来时添加新点,而当旧点即将丢失时,我应该得到状态= 0,这样我就可以一个一个地跟踪点。有没有办法这样做?有没有办法知道视频中每个点何时结束,这样我就可以跟踪轨迹?更改对 cvLKpyrOpticalFlow 的调用中的标志是否有助于获得连续流?
cvGoodFeaturesToTrack ( imgGrayscale, imgEigen, imgTemp, corners_img, &corner_count, 0.01, 5.0, 0, 3, 0.4 );
cvCalcOpticalFlowPyrLK( imgGrayscale, nxtimgGrayscale, pyr_img, pyr_nxtimg, corners_img, corners_nxtimg, corner_count, cvSize ( win_size, win_size ), 5, status, track_error, IterCriteria, NULL);
这是我正在运行以获取光流的代码块。