Image 图像聚类,k均值

Image 图像聚类,k均值,image,cluster-analysis,Image,Cluster Analysis,我有输入图像 我的代码是 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

我有输入图像

我的代码是

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))
我的输出图像是

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


有人能帮忙吗?我不懂聚类图像。

我不知道你为什么说输出不正确。我觉得很好


看,如果你使用平方欧几里德距离运行k-means(正如你所做的那样),簇将偏向球形。不幸的是,图像中的一个簇不是球形的。您可以看到每个球形簇都有一种独特的颜色,但非球形簇则没有。不清楚此代码应该做什么,也不清楚您使用的是什么语言。请编辑您的问题。