图像聚类,k表示

时间:2014-04-01 14:39:14

标签: image cluster-analysis

我输入了图片my input image

我的代码是

img = imread('obraz.bmp');
img=rgb2gray(img)
imshow(img)

%% normalization 
img = ( img - min(img(:)) ) ./ ( max(img(:)) - min(img(:)) );

img = ~img;
[m n]=size(img)
P = [];
for i=1:m    
    for j=1:n        
        if img(i,j)>=1
            P = [P ; i j];        
        end
    end
end

size(P);
MON=P;     

[IDX,ctrs] = kmeans(MON,3);
clusteredImage = zeros(size(img));
clusteredImage(sub2ind(size(img) , P(:,1) , P(:,2)))=IDX;

imshow(label2rgb(clusteredImage))

我的输出图片是my output image

我的输出不正确,我必须在逻辑上正确输出

任何人都可以提供帮助吗?我不理解聚类图像。

1 个答案:

答案 0 :(得分:0)

我不确定你为什么说输出不正确。对我来说似乎很好。

请参阅,如果使用平方欧几里德距离(正如您所做的那样)运行k-means,则聚类将偏向球形。不幸的是,图像中的一个簇不是球形的。您可以看到每个球形簇都具有独特的颜色,但不是球形的簇不会。