Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/dart/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python凸面外壳与scipy.spatial.Delaunay,如何删除外壳内的点?_Python_Numpy_Scipy_Convex Hull_Delaunay - Fatal编程技术网

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

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

我有一个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) 
# 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