【问题标题】:Converting ToF depthmaps to pointclouds将 ToF 深度图转换为点云
【发布时间】: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


【解决方案1】:

你如何使用内在函数可能有问题。

有一个关于“图像坐标的反向投影”的帖子:Computing x,y coordinate (3D) from image point 也许对你有帮助。

【讨论】:

    猜你喜欢
    • 2023-03-21
    • 2020-07-01
    • 2018-04-15
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2022-06-19
    • 2020-06-07
    • 2016-09-06
    相关资源
    最近更新 更多