0

如果我想通过 Open3D 从 .obj 文件中获取一些随机点,我应该怎么做。

我测试我可以通过以下方式读取文件

import open3d as o3d

print("Testing IO for textured meshes ...")
textured_mesh = o3d.io.read_triangle_mesh("../pikaqiu.obj")
print(textured_mesh)
mesh = o3d.geometry.TriangleMesh()

但是如何从文件中选择一个点?

4

1 回答 1

0

首先,您可以通过 可视化机甲open3d.visualization.draw_geometries_with_editing()。然后,在窗口出现后,您可以通过Shift+选择点Left Mouse Click。如果要取消选择,则Shift+ Right Mouse Click。选择完点后,按QEsc关闭窗口。get_picked_points()将返回您选择的多个点的索引。

import open3d as o3d
textured_mesh = o3d.io.read_triangle_mesh("../pikaqiu.obj")
vis = o3d.visualization.draw_geometries_with_editing()
vis.create_window()
vis.add_geometry(textured_mesh)
vis.run()  # user picks points
vis.destroy_window()
vis.get_picked_points()

您可以从网格的数组中获取点

mesh_array = np.asarray(pcd.points)
points = mesh_array[vis.get_picked_points()]
于 2021-02-16T23:22:09.497 回答