【发布时间】:2022-02-23 17:24:23
【问题描述】:
我对 ROS 非常陌生,并且正在从头开始构建一个系统以更好地理解这些概念。我正在尝试将深度图(从 Visionary-t 飞行时间相机作为 sensor_msgs/Image 消息接收)转换为点云。我正在遍历图像的宽度和高度(在我的情况下为 176x144 像素)说 (u, v) 并且 (u, v) 处的值是以米为单位的 Z。然后我使用固有的相机指标(c_x,c_y,f_x,f_y)将局部(u,v)坐标转换为全局(X,Y)坐标,为此,我使用针孔相机模型.
X = (u - c_x) * Z / f_x ; Y = (v - c_y) * Z / f_y
然后我将这些点保存到 pcl::PointXYZ 中。我的相机安装在顶部,视图是一张桌子,上面有一些物体。虽然我的桌子是平的,但是当我将深度图转换为点云时,我看到在点云中,桌子是凸形的,不是平的。
有人可以建议这个凸形的原因可能是什么,我该如何纠正这个问题?
【问题讨论】:
-
这能回答你的问题吗? Generate point cloud from depth image
-
我也用 open3d.geometry.PointCloud.create_from_depth_image() 函数尝试了这种方法。结果是一样的。尽管在后台,open3d 使用针孔相机模型进行了相同的转换。
标签: ros point-cloud-library point-clouds