我已经在这里阅读了SciPy文档(https://docs.scipy.org/doc/scipy/reference/ generated/scipy.spatial.Delaunay.html)多次,但我似乎找不到回答这个问题。我只看到输出的单纯形。
我有这个函数,它接受 3-D numpy 数组
from scipy.spatial import Delaunay
def get_vertices(points):
# Convert to mesh
tri = Delaunay(points)
faces = points[tri.simplices]
如何获取顶点?我需要顶点和面来创建网格。
由于
scipy.spatial.Delaunay
是 N 维的,因此术语“单纯形”是一个通用术语,指的是 2D 中连接顶点的三角形和 3D 中连接顶点的四面体。
要从 Delaunay 三角剖分创建网格,您必须过滤掉所有内部顶点并找到不与其他单纯形共享的单纯形(四面体)的面。我正在尝试使用
scipy.spatial.Delaunay.neighbors()
找出一种方法。如果我找到解决方案,我会更新这个答案。
对于其他可能同时找到此答案的人,scikit-image.measure.marching_cubes() 是从 3D 体素数组创建表面网格(顶点和面)的选项。