微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

使用 Python/opencv 计算图像的地面投影

如何解决使用 Python/opencv 计算图像的地面投影

我的问题是关于将图像投影到地面上,由两部分组成。

第 1 部分

作为起点,我在对象表面和将它们投影到地面上后有一个 Checkerboard image 和 4 个点(棋盘的边缘)的坐标。让它们成为(在 XYZ 坐标中):


obj1_xyz =[-15  -34,10 ]
obj2_xyz =[-15,-33,200]
obj3_xyz =[-6,-32,200]
obj4_xyz =[-6,-31,200]


img1_xyz=[200,400,0]
img2_xyz=[500,4000,0]
img3_xyz=[1000,4200,0]
img4_xyz=[300,500,0]

我的目标是查看从鸟瞰图和任意相机视角投影到地面上的棋盘格图像的外观。对于后者,我的相机参数如下(相机方向朝向图像):

camera_xyz = [1500,5000,1000]
camera_horizontal_fov = 24 #degrees
camera_vertical_fov = 40 #degrees

第 2 部分

这个基本上是反过来的。假设图像从相机的角度看起来“不错”(即,失真得到了校正,或者换句话说,在查看时它看起来与附加的图像完全一样),计算图像在原始物体表面上的外观(即我在开始时提供的坐标)。 据我了解,这部分应该很简单,因为它是第 1 部分的反转,如果计算投影/相机矩阵,则只需取逆即可完成。

评论

据我所知,opencv 应该完全适合这个问题,但是,我完全不确定如何去做或从哪里开始。我的印象是这个问题可以通过包轻松解决,我只是不明白如何使用它。 作为旁注,程序需要快速,因为我处理大图像。

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。