在Matlab中,我可以使用函数DelaunayTri和nearestNeighbors来查找最近的点。代码是这样的:
X1=[1,2,3,4,5,6,7]';
Y1=[1.3,1.5,1.7,1.9,2.1,2.3,2.5]';
Triangulation=DelaunayTri(Y1, X1);
X2=[1.5,2.5,3.5,4.5,5.5]';
Y2=[1.2,2.2,3.2,4.2,5.2]';
NearInd = nearestNeighbor(Triangulation, Y2, X2);
NearPoint = [X1(NearInd), Y1(NearInd)];
我应该在 Python 中使用什么函数来获得相同的结果?
您可以使用
scipy.spatial.Delaunay
模块进行三角测量。- 但是要查询最近的邻居,您可能必须使用
scipy.spatial.cKDTree
。这与三角测量是分开的。 - 这里也有可用于 python 的 CGAL 绑定。但是,如果您还不熟悉 CGAL,可能会有一些学习曲线。
- 然后还有用于Python的OpenCV示例,仅用于三角测量。
- 还有 PyHull 是 Qhull 的 python 绑定。但是我再次在任何地方都没有看到邻居搜索。
- scikit-learn也有邻居搜索,但没有三角测量。