【问题标题】:how to create a rgbd Image from numpy rgb array and depth array?如何从 numpy rgb 数组和深度数组创建 rgbd 图像?
【发布时间】:2020-12-14 15:54:15
【问题描述】:

我有一个 numpy 数组,它是形状(高度、宽度、3)的彩色图像“img”,还有一个形状(高度、宽度)的深度 numpy 数组。 我想创建一个 RGBD 图像并显示它,为此我正在执行以下操作:

o3d.geometry.RGBDImage.create_from_color_and_depth(img, depth)

但我得到了错误:

TypeError: create_from_color_and_depth(): incompatible function arguments. The following argument types are supported:
    1. (color: open3d.open3d_pybind.geometry.Image, depth: open3d.open3d_pybind.geometry.Image, depth_scale: float = 1000.0, depth_trunc: float = 3.0, convert_rgb_to_intensity: bool = True) -> open3d.open3d_pybind.geometry.RGBDImage

如何解决这个问题?如果需要 Image 类型,那么如何将 numpy 数组转换为 Image 类型?

即使我像这样将 numpy 数组传入 o3d.geometry.Image 构造函数:

o3d.geometry.RGBDImage.create_from_color_and_depth(o3d.geometry.Image(img), o3d.geometry.Image(depth))

我得到错误:

TypeError: create_from_color_and_depth(): incompatible function arguments. The following argument types are supported:
    1. (color: open3d.open3d_pybind.geometry.Image, depth: open3d.open3d_pybind.geometry.Image, depth_scale: float = 1000.0, depth_trunc: float = 3.0, convert_rgb_to_intensity: bool = True) -> open3d.open3d_pybind.geometry.RGBDImage

如何解决这个问题并从 rgb numpy 数组和深度 numpy 数组创建 RGBD 图像?

【问题讨论】:

    标签: python arrays numpy open3d


    【解决方案1】:

    如果您共享可重现的示例会很棒,但我认为从 np.array 创建Image 并不像基于signature 调用ctor 那样简单。这个不一定是uint8数组吧?

    基于this article,您必须按如下方式创建它:

    depth_as_img = o3d.geometry.Image((depth).astype(np.uint8))
    

    并进一步传递给create_from_color_and_depth。因此,您必须明确指定它是一个 uint8s 数组。

    【讨论】:

    • 在我的例子中,深度图像的类型是np.float32,它也可以正常工作。但是,您必须确保它也是一个 c 类型的数组。这是默认的,不用太在意,但如果不是c-type,可以使用o3d.geometry.Image(np.ascontiguousarray(np_array).astype(np.float32))避免报错。
    【解决方案2】:

    您应该检查此函数中的convert_rgb_to_intensity 参数。默认情况下,它将使用灰度图像。这样,您的彩色图像应该只有一个通道。如果你想要 RGB,将该参数设置为 false 并查看是否解决。

    此外,从 numpy 到 open3d 图像的额外 cmets:https://github.com/intel-isl/Open3D/issues/957

    【讨论】:

      猜你喜欢
      • 2023-03-29
      • 1970-01-01
      • 1970-01-01
      • 2018-10-16
      • 1970-01-01
      • 2016-08-26
      • 2017-12-28
      • 1970-01-01
      相关资源
      最近更新 更多