【问题标题】:Detecting camera motion with opencv使用opencv检测相机运动
【发布时间】:2014-07-15 04:47:03
【问题描述】:

我正在使用相机在靠近墙壁的地方稳定无人机。为此,我需要提取相机相对于墙壁的运动。现在我使用了一个扩展的 OpenCV 示例,它使用 goodFeaturesToTrack 命令在每一帧中查找特征点。然后使用使用 Lucas-Kanade 方法的calcOpticalFlowPyrLK 将这些特征点跟踪到下一帧。然后我减去点位置来计算位移。将所有位移加在一起得到第一帧的总位移。 (在这期间我做了一些平均和过滤)。

我得到的结果根本不像相机的运动。运动向任何方向进行。有人知道出了什么问题吗?我是否使用了错误的算法来解决这样的问题?

【问题讨论】:

  • 您的相机可以改变与墙壁的距离。你如何计算那个位移?
  • 您需要找到您的相机的外部相机参数(校准)。通过使用opticalFlow,您可以跟踪二维图像空间中的特征。如果您可以在多个图像上跟踪相同的特征,则可以使用该信息来计算校准。我在该主题上没有深入的经验,所以我无法提供进一步的帮助。
  • 如果没有一些示例信息,几乎不可能说出您做错了什么。如果我不得不猜测,我会说它需要结合旋转和平移。

标签: c++ opencv camera flow motion


【解决方案1】:

我认为 opencv samples/cpp/phase_corr.cpp 中的标准示例应该会有所帮助。

【讨论】:

    猜你喜欢
    • 2015-04-03
    • 2012-10-10
    • 1970-01-01
    • 2017-04-28
    • 1970-01-01
    • 2012-11-15
    • 2023-04-02
    • 2012-12-08
    • 1970-01-01
    相关资源
    最近更新 更多