Python凸面外壳与scipy.space.Delaunay,如何删除外壳内的点?

2024-05-15 00:57:40 发布

您现在位置:Python中文网/ 问答频道 /正文

我有一个名为pointsList的np数组中的3D点列表,值为float

[[1., 2., 10.],
 [2., 0., 1.],
 [3., 6., 9.],
 [1., 1., 1.],
 [2., 2., 2.],
 [10., 0., 10.],
 [0., 10., 5.],
... etc.

此代码对点云进行Delaunay三角剖分:

import numpy as np
import scipy.spatial 

tri = scipy.spatial.Delaunay(pointsList) 
# Delaunay triangulation

indices = tri.simplices
# indices of vertices

vertices = points[indices]
# the vertices for each tetrahedron

但是,在三角剖分步骤之前,我想从列表中删除凸壳内部的所有点

解决方案是创建一个名为shortlist的新np.array,并将其存储在那里。

但是scipy(或任何其他解决方案)中的哪个函数会这样做呢?

我该如何计划这次行动?

谢谢你


Tags: import列表npetcscipy数组解决方案float
1条回答
网友
1楼 · 发布于 2024-05-15 00:57:40

凸壳是Delaunay三角剖分的一个子图。

所以你可以使用^{},例如

from scipy.spatial import ConvexHull
cv = ConvexHull(pointList)

hull_points = cv.vertices
# the vertices of the convex hull

set(range(len(pointList))).difference(ch.vertices)
# the vertices inside the convex hull

比较scipy.spatial.Delaunayscipy.spatial.ConvexHull(2D)

enter image description here

相关问题 更多 >

    热门问题