在给定的一组点的python中的凸壳?

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了在给定的一组点的python中的凸壳?相关的知识,希望对你有一定的参考价值。

我试图找到凸包,以便我得到opencv库,代码是:

import cv2
import numpy as np
a = [[0, 0], [1, 0], [0, 1], [1, 1], [0.5, 0.5]]
cv2.convexHull(np.array(a))

我收到的错误是 -

Traceback (most recent call last):
  File "<pyshell#10>", line 1, in <module>
    cv2.convexHull(np.array(a))
error: C:projectsopencv-pythonopencvmodulesimgprocsrcconvhull.cpp:137: error: (-215) total >= 0 && (depth == 5 || depth == 4) in function cv::convexHull

怎么解决?

答案

问题在于C ++代码期望“双通道或三通道浮点阵列,其中每个元素都是2D / 3D向量”,它将Python / NumPy转换为3维数组。

import cv2
import numpy as np
a = [[0, 0], [1, 0], [0, 1], [1, 1], [0.5, 0.5]]
cv2.convexHull(np.array(a,dtype='float32'))

资料来源: - http://answers.opencv.org/question/252/cv2perspectivetransform-with-python/

以上是关于在给定的一组点的python中的凸壳?的主要内容,如果未能解决你的问题,请参考以下文章

python库skimage 绘制二值图像的凸壳(convex hull)

找到一个具有最大点数的圆 ((x,y,r));给定二维平面中的一组点(x,y)

罗德里格斯相对于向量的一组点的旋转

将平面拟合到 3D 中的一组点:scipy.optimize.minimize vs scipy.linalg.lstsq

python+opencv2快速找出一组点包围的区域中的所有点

最接近一组点的线[重复]