繁体   English   中英

聚类点算法

[英]Clustering Points Algorithm

我已经应用了三种不同的方法来获取点集,如下所示。 每种方法都会产生一个点向量。 每种方法都有不同的颜色,红色、蓝色和绿色。

方法一 方法二 方法三

这是组合图像,覆盖了所有 3 组点

在此处输入图片说明

正如您在组合图像中看到的那样,存在所有三组“一致”的点(即通常位于完全相同的点)。 我想找到这些特定的点并将它们组合成一个坐标。 我不确定从哪里开始解决这个问题。 我已经研究过 K-means 聚类,但对我来说问题似乎是 K-means 将所有点聚类并取周围点的平均值,将聚类中心从原始位置移动。 我可以遍历所有存储点的向量中的所有点,但是随着这些图像随着点的增多而变大,它变得非常昂贵且效率低下。

有没有人有任何关于如何解决这个问题的提示? 我一直在使用 OpenCV 和 C++。

从理论上讲,您想要做的是考虑三组点上的完整三方图,其中边由距离加权。 然后按权重顺序选择边,直到出现三角形 将这些点称为相应的集合,选择(例如)它们的质心来表示它们,然后它们从图中删除 当边缘长度超过某个公差时停止。

这种方法的数学依据是它独立于点排序(除非在点之间的距离有问题的不太可能的情况下)。

该算法的实际实现(对于大量点)涉及可以快速找到附近点(不仅仅是最近点)的搜索数据结构:阈值大小的 bin、四叉树或k - d树都可以. 可能您会为每个点集创建一个,并使用其他集的点作为查询点。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM