首页 > 解决方案 > 如何在opencv python中将8个点分成两部分

问题描述

我正在尝试进行相机校准,但在将点分成两个集群时遇到了问题。

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

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

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

提前非常感谢。

标签: pythonopencvcluster-analysiscalibration

解决方案


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

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

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


推荐阅读