gpt4 book ai didi

python - OpenCV 从机器人相机中移除透视

转载 作者:太空宇宙 更新时间:2023-11-03 21:31:52 25 4
gpt4 key购买 nike

我有一架飞行的无人机,它带有一个朝下的摄像头和一个红外传感器,我正在为无人机开发 SLAM。无人机仅飞过平面。要使用相机馈送和 opencv 构建无人机环境的 map ,您需要从捕获的图像中移除相机的视角(由高度、滚动、俯仰和偏航引入),以便图像中的距离准确。

为此,我查看了 openCV 的方法,但它们似乎都需要事先校准相机才能使用脚本确定相机的方向。

如果您知道无人机(和相机)的方向,是否有任何方法可以可靠地变换图像中的点,使间距保持不变?我可以从 IMU 访问有关无人机方向的数据。

最佳答案

不幸的是,无人机位置和方向的不准确会导致您建议的方法出错。

相机校准是一个烦人的过程,但如果您想要一个黑盒解决方案,这可能是您最好的选择。

但是如果你想尝试一下,请看下面我的评论。


您可以应用 opencv 的 warp perspective 函数来尝试移除相机的视角,但请注意,它有几个很强的假设,可能不是最佳解决方案:

  • 您有关于无人机位置的完美信息
  • 你知道相机相对于无人机机身的位置
  • 你正飞过一个完美的平面

在这种情况下,您构建了 3 个变换矩阵来表示:从地面到无人机的变换、从无人机到相机的变换,以及通过将前两个矩阵相乘从地面到相机的变换。

T_{地面到相机} = T_{地面到无人机}*T_{无人机到相机}

此矩阵的逆矩阵可用作 warpPerspective 的输入,以将像素转换为地面帧。 This a blog post这很好地解释了函数的输入和输出参数。代码以 c++ 提供,但在 python 中实现起来应该相对简单。

关于python - OpenCV 从机器人相机中移除透视,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51313763/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com