【发布时间】:2022-06-19 01:43:44
【问题描述】:
我在一个文本文件中获得了[(x, y, z) , (norm_x, norm_y, norm_z)] 形式的点云数据。我正在尝试将其转换为 png 或 jpg 图像文件,其中任何点的强度都对应于其深度 (z)。
感谢大家花时间阅读本文。
【问题讨论】:
-
在深度图中,x 和 y 是像素位置,而不是 3D 点的 x 和 y。要生成深度图,您通常会投影 3d 点并为每个像素记住深度最低的点。例如。 opengl 渲染场景的深度缓冲区。可能 open3d 有一些功能可以做到这一点。
-
@Micka 是对的。您可以使用来自 Open3D 的
render_to_depth_image -
考虑到我只使用顶视图来构建深度图,我还需要投影点吗?同样对于投影,我应该使用什么相机矩阵值和旋转矢量?
-
@AliWaqas 是的,您仍然需要投影它们。在针孔相机模型中,(x,y,z) 的投影不仅仅是 (x,y)(请查看 hedivision.github.io/Pinhole.html 中的 eq 1)。因此,您可以编写自己的渲染器,这将是一个很好的练习。但是,如果您只是在寻找答案,您可以利用 Open3D(或任何其他库)的现有功能。您可以查看本教程以了解如何设置摄像机角度和渲染深度图:open3d.org/docs/release/tutorial/visualization/…
标签: opencv 3d computer-vision physics mesh