capture_depth_float_buffer
是Open3D可视化组件的一个功能,用于捕捉渲染深度信息。该功能针对深度信息做了优化,能够以float32
格式返回深度缓冲区(depth buffer)。
def capture_depth_float_buffer(width: int, height: int, reset_bounding_box: bool = True) -> np.ndarray:
pass
width: int
:捕捉图像的宽度,必传参数。height: int
:捕捉图像的高度,必传参数。reset_bounding_box: bool
:是否要重新计算bounding box。默认为True。返回一个numpy.ndarray
类型的数组,表示深度缓冲区。数组大小为(height, width)
。
无。
import open3d.visualization as vis
# 创建Visualizer对象
visualizer = vis.Visualizer()
# 创建Scene对象
scene = vis.Scene()
# 设置点云
pcd = vis.geometry.PointCloud()
pcd.points = vis.utility.Vector3dVector(np.random.randn(1000, 3))
scene.add_geometry(pcd)
# 将Scene添加到Visualizer
visualizer.add_geometry(scene)
visualizer.get_render_option().point_size = 4.0
# 获取深度缓冲区
depth = visualizer.capture_depth_float_buffer(width=1000, height=600)
# 关闭Visualizer
visualizer.destroy_window()
capture_depth_float_buffer
需要在Visualizer
创建的OpenGL上下文中调用,需确保在visualizer.destroy_window()
函数调用前完成调用。capture_depth_float_buffer
的调用将把场景渲染一次,因此请勿在 Visualizer
对象中重复调用。