Python凸面外壳与scipy.spatial.Delaunay,如何删除外壳内的点?
我有一个np.数组中的3D点列表,名为Python凸面外壳与scipy.spatial.Delaunay,如何删除外壳内的点?,python,numpy,scipy,convex-hull,delaunay,Python,Numpy,Scipy,Convex Hull,Delaunay,我有一个np.数组中的3D点列表,名为pointsList,值为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
,值为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
但是,在三角剖分步骤之前,我想从列表中删除凸包内部的所有点
一个解决方案是创建一个名为短名单
的新np.array
,并将它们存储在那里
但是scipy
(或任何其他解决方案)中的哪个函数可以做到这一点
如何对该操作进行编程
谢谢凸包是Delaunay三角剖分的一个子图 所以你可以用,e。g 比较
scipy.spatial.Delaunay
和scipy.spatial.ConvexHull
(2D)
你是如何绘制这幅图像的?@TripShock这是两幅图像。我将散点数据(散点图)和链接顶点的数据(线图)输入matplotlib。您可以通过
simplices
属性中的索引获得链接顶点。@embert谢谢您的回答,但是在执行ConvexHull操作之后,我如何计算Delaunay三角剖分???@adrienlucca.wordpress.com您为什么要这样做?您可以执行一次Delaunay(scipy.spatial.Delaunay),通过这样做,您也可以使用ConvexHull(scipy.spatial.Delaunay.ConvexHull)。
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