如何使用Open3d在可视化模块中设置点大小和线粗细?

517*_*com 6 python point-clouds open3d

我参考http://www.open3d.org/docs/release/tutorial/visualization/visualization.html#Function-draw_geometries中的代码和代码如下:

import open3d as o3d

print("Let's draw a box using o3d.geometry.LineSet.")
points = [
[0, 0, 0],
[1, 0, 0],
[0, 1, 0],
[1, 1, 0],
[0, 0, 1],
[1, 0, 1],
[0, 1, 1],
[1, 1, 1],
]
lines = [
[0, 1],
[0, 2],
[1, 3],
[2, 3],
[4, 5],
[4, 6],
[5, 7],
[6, 7],
[0, 4],
[1, 5],
[2, 6],
[3, 7],
]
colors = [[1, 0, 0] for i in range(len(lines))]
line_set = o3d.geometry.LineSet(
points=o3d.utility.Vector3dVector(points),
lines=o3d.utility.Vector2iVector(lines),
)
line_set.colors = o3d.utility.Vector3dVector(colors)
point_cloud2 = o3d.geometry.PointCloud()
point_cloud2.points = o3d.utility.Vector3dVector(points)
point_cloud2.paint_uniform_color([0, 1, 0])

o3d.visualization.draw_geometries([line_set, point_cloud2])
Run Code Online (Sandbox Code Playgroud)

我可以得到线和点: 在此输入图像描述 如何设置绘制的点大小和线条粗细?

sau*_*hts 1

您不能通过 来执行此操作o3d.visualization.draw_geometriesdraw_geometries只是为了轻松使用o3d.visualization.Visualizer类而提供的辅助方法。

在 中o3d.visualization.Visualizer,您可以通过更新渲染选项来增加点大小和线宽:-

# Replace last line of o3d.visualization.draw_geometries([line_set, point_cloud2]) with below code.
vis = o3d.visualization.Visualizer()
vis.create_window()
vis.add_geometry(line_set)
vis.add_geometry(point_cloud2)
vis.get_render_option().line_width = 5
vis.get_render_option().point_size = 20
vis.run()
Run Code Online (Sandbox Code Playgroud)

在此输入图像描述

请参阅此处(Open3d 源代码)了解线宽和点大小的最小/最大限制。