我有一個 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 圖像?
3 回答

收到一只叮咚
TA貢獻1821條經驗 獲得超5個贊
如果您共享可重現的示例會很棒,但我認為Image
從 np.array 創建并不像基于signature調用 ctor 那樣簡單。這不一定是一個 uint8 數組,對吧?
您必須按如下方式創建它:
depth_as_img?=?o3d.geometry.Image((depth).astype(np.uint8))
并進一步傳遞給create_from_color_and_depth
.?因此,您必須明確指定它是一個 uint8 數組。

揚帆大魚
TA貢獻1799條經驗 獲得超9個贊
您應該檢查convert_rgb_to_intensity
此函數中的參數。默認情況下,它將使用灰度圖像。這樣,您的彩色圖像應該只有一個通道。如果你想要 RGB,將該參數設置為 false 并查看它是否解決。

藍山帝景
TA貢獻1843條經驗 獲得超7個贊
您必須將圖像轉換為連續數組。您可以使用 numpy 數組執行此操作,如下所示!
depth_map?=?np.array(depth_map,?dtype=np.float32)
添加回答
舉報
0/150
提交
取消