capture_depth_image
方法用于在 Open3D 可视化器上捕捉深度图像。
def capture_depth_image(self, depth_scale=1000.0, convert_rgb_to_intensity=False):
depth_scale
:深度比例因子,默认值为 1000。convert_rgb_to_intensity
:是否将 RGB 图像转换为强度图像。默认值为 False。返回一个 open3d.geometry.Image
的实例,该实例包含从当前显示的帧捕获的深度图像。
import open3d as o3d
import numpy as np
def capture_depth_image(vis):
depth_image = vis.capture_depth_image()
np_depth = np.asarray(depth_image)
print(np_depth)
if __name__ == "__main__":
mesh = o3d.geometry.TriangleMesh.create_box()
vis = o3d.visualization.VisualizerWithKeyCallback()
vis.create_window()
vis.add_geometry(mesh)
vis.register_key_callback(ord("D"), capture_depth_image)
vis.run()
vis.destroy_window()
在以上示例中,我们创建了一个 TriangleMesh
对象,并实例化了一个 VisualizerWithKeyCallback
对象。我们添加了 mesh
对象到可视化器中,并注册了键盘回调函数,以便在按下 “D” 键时,捕捉深度图像。最后运行可视化器。
深度图像将以 numpy 数组的形式打印出来。需要注意的是,深度值将会乘上 depth_scale
参数,在此示例中为 1000。
create_window
方法创建窗口。destroy_window
方法清理可视化器。run
方法来更新并显示窗口。