remove_vertices_by_mask
方法允许用户通过布尔屏蔽列表删除三角网格中的顶点。
open3d.geometry.TriangleMesh.remove_vertices_by_mask(mask)
mask
:布尔屏蔽列表,其长度应该等于三角网格的顶点数。该函数没有返回值,但是会更新三角网格对象的顶点、三角形面和法线信息。
import open3d as o3d
import numpy as np
vertices = np.array([[0, 0, 0], [0, 1, 0], [1, 0, 0], [1, 1, 0], [0.5, 0.5, 1]])
triangles = np.array([[0, 1, 3], [0, 3, 2], [0, 2, 4], [0, 4, 1], [1, 3, 4], [2, 3, 4]])
mesh = o3d.geometry.TriangleMesh()
mesh.vertices = o3d.utility.Vector3dVector(vertices)
mesh.triangles = o3d.utility.Vector3iVector(triangles)
# 定义布尔屏蔽列表 mask
mask = np.array([True, False, True, False, True])
mesh.remove_vertices_by_mask(mask)
print(mesh.vertices)
TriangleMesh.remove_unreferenced_vertices()
方法来删除无法到达的部分。