多个几何图形的 Open3D 可视化

问题描述 投票:0回答:2

今天我开始使用 Open3D,但我真的不知道如何在一个场景/窗口中显示多个几何对象。

当我运行代码时,我有两个不同且独立的窗口(第一个带有点云,第二个带有线)。 我应该如何使用 Visualization.draw_geometries 在一个场景中显示它们两个?

xyz = np.genfromtxt('file.csv', delimiter=',')
print (xyz)

pcd = o3d.geometry.PointCloud()
pcd.points = o3d.utility.Vector3dVector(xyz)
print(np.asarray(pcd.points))
o3d.visualization.draw_geometries_with_editing([pcd])

choosen_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()
line_set.points = o3d.utility.Vector3dVector(choosen_points)
line_set.lines = o3d.utility.Vector2iVector(lines)
line_set.colors = o3d.utility.Vector3dVector(colors)
o3d.visualization.draw_geometries([line_set])
python geometry line point-clouds open3d
2个回答
5
投票

o3d.visualization.draw_geometries
需要一个几何图形列表作为参数。您当前正在调用该函数两次,这会导致打开两个窗口。要同时绘制两个几何图形,您只需将它们组合在一个列表中,如下所示:

o3d.visualization.draw_geometries([pcd, line_set])

0
投票

正如 starjan 所说:o3d.visualization.draw_geometries 需要一个几何图形列表。然后这些都显示在一个窗口中。

文档中有一个示例:

一个窗口中的多个几何形状

© www.soinside.com 2019 - 2024. All rights reserved.