我正在尝试使用 C++ 和 OpenCV 编写一个程序,该程序计算与对象碰撞之前的剩余时间(帧)。作为示例视频,我有一个相机朝着黑板移动。
我对此的方法如下:
- 检测要跟踪的特征(尝试过 goodFeaturesToTrack() 或“手动”设置点)
- 通过 calcOpticalFlowPyrLK() 计算光流
- 通过 findFundamentalMat() 计算先前和当前找到的特征的基本矩阵
- 检查基本矩阵是否正确
- 计算极线和极线——视频中展开的重点
最后,我打算使用接触时间的方法来计算碰撞前的剩余帧数。
到目前为止,我最大的问题是找到正确的基本矩阵,从而找到极点。计算出的矩阵似乎是错误的,极线也是如此。我计划的方法是否正确?有没有人有一个从视频中获取 FoE 的工作示例或任何关于我必须做什么的演练?
我会很高兴得到任何帮助!
谢谢!