如何在SciPy中获得Delauny三角剖分后的面和顶点?

2guxujil  于 8个月前  发布在  其他
关注(0)|答案(1)|浏览(73)

我已经多次阅读SciPy文档(https://docs.scipy.org/doc/scipy/reference/generated/scipy.spatial.Delaunay.html),但似乎找不到答案。我只看到输出的单形。
我有一个函数,它接受一个三维numpy数组

from scipy.spatial import Delaunay

def get_vertices(points):
    # Convert to mesh
    tri = Delaunay(points)
    faces = points[tri.simplices]

我如何得到顶点?我需要顶点和面来创建网格。

utugiqy6

utugiqy61#

由于scipy.spatial.Delaunay是N维的,所以术语“scipy.spatial.Delaunay”是一个通用术语,指的是连接2D中顶点的三角形和连接3D中顶点的四面体。
要从Delaunay三角剖分创建网格,必须过滤掉所有内部顶点,并找到不与其他单形共享的单形(四面体)的面。我正在尝试使用scipy.spatial.Delaunay.neighbors()来解决这个问题。我会更新这个答案,如果我得到一个解决方案。
对于其他可能同时找到这个答案的人来说,scikit-image.measure.marching_cubes()是一个从3D体素阵列创建表面网格(顶点和面)的选项。

相关问题