K-Mean聚类中的质心

时间:2017-04-16 12:16:08

标签: matlab image-processing k-means

我正在尝试对灰度图像进行k均值聚类。

代码如下:

I = im2double(imread('sample.png'));
J = rgb2gray(I);
r = size(J,1);
c = size(J,2);
J = reshape(J,r*c,1);

[cluster_idx, cluster_center] = kmeans(J,k,'start','uniform','distance','sqEuclidean', 'Replicates', 3);

这里cluster_idx具有输入图像的每一行的聚类索引。而cluster_center具有集群质心位置。但这将是一个k x 1矩阵。我没有得到的是这些值(double)如何表示输入图像聚类的质心?

1 个答案:

答案 0 :(得分:1)

cluster_center表示每个群集的平均灰度,而cluster_idx为每个像素分配群集成员资格

将您的群集结果reshape恢复为原始图片大小,并使用cluster_idx作为cluster_center索引:

J = im2double(imread('cameraman.tif'));
r = size(J,1);
c = size(J,2);
J = reshape(J,r*c,1);
k = 3;
[cluster_idx, cluster_center] = kmeans(J,k,'start','uniform','distance','sqEuclidean', 'Replicates', 3);

II = reshape(cluster_idx,[r c]);
JJ = cluster_center(II);
imshow(JJ);

enter image description here