2014-04-01 78 views
-1

我有輸入圖像my input image圖像聚類,k表示

我的代碼是

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

不清楚這段代碼應該做什麼,也不清楚你在寫什麼語言。請編輯你的問題。 – wingedsubmariner

回答

0

我不知道你爲什麼說輸出不正確。對我來說似乎很好。

請參閱,如果使用平方歐幾里得距離運行k-means(如您所做的那樣),則這些簇將偏向於球形。對你而言不幸的是,圖像中的一個簇不是球形的。您可以看到每個球形羣集都具有唯一的顏色,但不是球形的羣集不是。