Можно ли показать нормаль на поверхности сетки с помощью open3D? - PullRequest
0 голосов
/ 21 ноября 2019

Я использую Open3D для создания сетки, и в официальной сети мы можем вычислить нормаль треугольника сетки треугольника, но как визуализировать нормаль поверхности?

Спасибо за помощь

1 Ответ

0 голосов
/ 27 ноября 2019

Как только вы вычислили нормали, вы можете визуализировать нормали, нажав ctrl + 9 в визуализаторе, например,

import open3d as o3d

mesh = o3d.io.read_triangle_mesh('path_to_mesh')
mesh.compute_vertex_normals()
o3d.visualization.draw_geometries([mesh])

Это даст вам что-то вроде этого: Normal rendering Если вы хотите видеть нормали вершин в виде линий, я не уверен, что это поддерживается в open3d для сеток. Но вы можете преобразовать сетку в облако точек:

pcd = o3d.geometry.PointCloud()
pcd.points = o3d.utility.Vector3dVector(np.asarray(mesh.vertices))
pcd.estimate_normals()

, а затем визуализировать нормали, нажав n в визуализаторе. Это даст вам что-то вроде этого: Vertex normals

...