【问题标题】:OpenCV - KMeans2 resulting in many empty clustersOpenCV - KMeans2 导致许多空簇
【发布时间】:2012-05-27 16:05:34
【问题描述】:

我正在使用 OpenCV 的 (Python) kmeans2 函数对从一组图像中提取的一组 SURF 特征进行聚类。

cv.KMeans2(mat,CLUSTER_COUNT,labels,(cv.CV_TERMCRIT_ITER,100,1.0),centers = cent)

我在一组大约 50,000 个功能上运行它,将我的 CLUSTER_COUNT 设置为 2000。但是我只得到 253 个非空集群。剩余的集群没有分配给它们的功能。

我不确定 OpenCV 的 K-Means 实现是什么样的,但我会认为当有一个空集群时,中心会被重新分配什么的?

我调用它的方式有问题还是这是预期的行为?

【问题讨论】:

    标签: python opencv k-means


    【解决方案1】:

    也许试试cv2.kmeans,这样更容易理解。如果问题仍然存在,请告诉我们。

    【讨论】:

    • 我昨天真的想通了,这正是问题所在。 cv.KMeans2 是不处理空簇的旧版本。我查看了源代码,新函数对空集群执行以下操作: 1. 找到最大的集群 2. 选择离集群中心最远的点 3. 将该点设置为新中心(替换空的)所以没有空簇!
    猜你喜欢
    • 2010-12-11
    • 2012-11-07
    • 1970-01-01
    • 1970-01-01
    • 2019-03-02
    • 1970-01-01
    • 1970-01-01
    • 2014-09-12
    • 1970-01-01
    相关资源
    最近更新 更多