我在 obj 文件中有一个带有闭合孔(缺少几何图形的区域)的重建场景的 3D 网格。我在 MeshLab 中使用 Close Holes 过滤器来恢复孔区域中的几何图形。
该网格有 7728 个顶点和 2864 个面。为了使用网格几何体进行操作,我使用 OpenMesh 库。
我遵循 OpenMesh Python 绑定的官方教程。我使用方法 mesh.vf() 和 mesh.vv() 来获取每个顶点的相邻顶点和面。令人惊讶的是,我得到了 6141 个没有邻居的顶点 - 方法 mesh.vf() 和 mesh.vv() 返回空列表。当 mesh.faces() 获得 2864 个面时,这很奇怪。
此外,我使用以下代码获取网格中所有顶点的列表
unique_vertices = []
all_vertices = []
print('Total number of faces: ', len(mesh.faces()))
for fh in mesh.faces():
# print('face ', fh.idx())
for vh in mesh.fv(fh):
# print('vertex ', vh.idx())
all_vertices.append(vh)
# print('')
unique_vertices = list(set(all_vertices))
此代码返回 8592 个唯一顶点。
你知道 OpenMesh API 中这些奇怪行为的原因是什么吗?