我输入了图片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
我的输出不正确,我必须在逻辑上正确输出
任何人都可以提供帮助吗?我不理解聚类图像。
答案 0 :(得分:0)
我不确定你为什么说输出不正确。对我来说似乎很好。
请参阅,如果使用平方欧几里德距离(正如您所做的那样)运行k-means,则聚类将偏向球形。不幸的是,图像中的一个簇不是球形的。您可以看到每个球形簇都具有独特的颜色,但不是球形的簇不会。