我尝试了这里写的代码: http://i-vizon.blogspot.ch/2013/03/optical-flow-using-opencv-library-on.html
效果很好,但在移动相机的情况下表现不佳,因为在场景变化时删除了所有功能。
从根本上说,代码是如此组成:
第一帧:goodFeaturesToTrack(grayFrames,points1,MAX_COUNT,0.01,5,Mat(),3,0,0.04);
其他相框: calcOpticalFlowPyrLK(prevGrayFrame,grayFrames,points2,points1,状态,ERR,使用winsize,3,termcrit,0,0.001); goodFeaturesToTrack(grayFrames,points1,MAX_COUNT,0.01,10,垫(),3,0,0.04); 通过交换前一个当前帧的点和副本。
问题: 当我在相机上使用它时,在我的手上处理它,当我改变第一个场景时没有产生光流,我想因为初始特征不再包含在新帧中。 我如何刷新此代码中的功能点以继续工作? 哪个是一个很好的刷新条件?例如基于特征的数量?
非常感谢。