0

在图像向量上使用 k-means 时,我有一个挥之不去的疑问。我有一个已转换为 HSV 空间的 RGB 图像。基本上我想单独对 H 向量执行 k-means。这是一个 214 x 300 的向量。

我有两个问题:

1.在将样本输入 kmeans 命令之前,是否应该将样本重塑为 64200*1 向量?

2.如何找到每个集群的中心(我将集群分为 4 个集群,因此我需要 4 个位置,每个位置代表每个集群的中心。)

4

1 回答 1

0
  1. 是的,您应该将矩阵重塑为1xN向量,其中N对应于您要聚类的色调值的数量。每个都被视为要聚类的单个数据点。

  2. k-means 的很大一部分是寻找正确的聚类中心。这发生在你身上,它不需要事先设置。如果您想用良好的中心初始化集群,请查看k-means++,但您不必在运行 k-means 之前找到集群中心。要在聚类后获得计算的聚类中心,您只需查看调用 k-means 提供的输出数组。签名如下:

    双 kmeans(InputArray 数据,int K,InputOutputArray bestLabels,TermCriteria 标准,int 尝试,int 标志,OutputArray 中心 = noArray());

如您所见,kmeans() 调用的最后一个参数是包含聚类中心的矩阵。

于 2013-06-26T16:08:02.373 回答