Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/opencv/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
如何在opencv python中将8个点分成两部分_Python_Opencv_Cluster Analysis_Calibration - Fatal编程技术网

如何在opencv python中将8个点分成两部分

如何在opencv python中将8个点分成两部分,python,opencv,cluster-analysis,calibration,Python,Opencv,Cluster Analysis,Calibration,我试图做一个摄像机校准,但在将点分成两个簇时遇到了问题 示例图像: 例如,如图所示,有八个大小相似的矩形。A、 B、C、D、E、F、G、H是它们的中心。我想把A,B,C,D集中到一个列表中,把E,F,G,H集中到另一个列表中 我的想法是找到4个点的所有组合,然后进行直线拟合。最佳拟合的两条线(偏差最小)应为线ABCD和线EFGH。因此,我可以把它们分开 然而,我想知道是否有更好的方法来做到这一点?或者在python/opencv中是否有我可以使用的库 非常感谢。计算机视觉中的经典方法(CV中的每

我试图做一个摄像机校准,但在将点分成两个簇时遇到了问题

示例图像: 例如,如图所示,有八个大小相似的矩形。A、 B、C、D、E、F、G、H是它们的中心。我想把A,B,C,D集中到一个列表中,把E,F,G,H集中到另一个列表中

我的想法是找到4个点的所有组合,然后进行直线拟合。最佳拟合的两条线(偏差最小)应为线ABCD和线EFGH。因此,我可以把它们分开

然而,我想知道是否有更好的方法来做到这一点?或者在python/opencv中是否有我可以使用的库


非常感谢。

计算机视觉中的经典方法(CV中的每个人都应该知道)是使用Hough变换。然后在这个投影中找到密度峰值

Hough变换空间中的峰值对应于原始空间中包含多个点的线


有一种基于这种思想的聚类算法:CASH。但是,如果您的输入数据超过二维,那么使用它最有趣。

谢谢。但根据我的测试,hough变换仍然失败。我试过
lines=cv2.HoughLines(img,1,np.pi/180200)
。但是它只给出一行而不是两行<代码>img仅包含10个中心点。我用以下方法完成了这个问题:1。找出两点的所有组合。2.使用两点得到一条直线。然后看看这条线上是否有五个点。3.当我找到两条这样的线时,返回。