2013-05-22 36 views
1

執行k = 3(段)的K均值聚類。所以I:K表示在MATLAB中進行聚類 - 輸出圖像

1)轉換後的RGB IMG爲灰度

2)澆鑄所述原始圖像爲X 1,列矩陣

3)IDX = k均值(column_matrix)

4)輸出= idx,與原始圖像的尺寸相同。

我的問題是:

一個

當我做imshow(輸出),我得到一個純白色的圖像。但是,當我做imshow(輸出[0 5])時,它顯示輸出圖像。我知道0和5指定了顯示範圍。但爲什麼我必須這樣做呢?

B) 現在輸出圖像意味着被分成右邊的3段。我怎麼門檻是這樣的,我指定的區域1 1的簇

0爲區域3

集羣作爲我的整點做這個集羣區域2 2羣是如此我可以將圖像分割成3個區域。

非常感謝。

親切的問候。

回答

3

一個:鑑於您的矩陣output包含範圍的標量值從1到3,imshow(output)是治療這種作爲灰度矩陣和假設值的完整範圍是0到255,這是爲什麼約束顏色限制是必要的,否則你的圖像全白或幾乎全白。

B:output = output - 1

+0

非常感謝Ryan。非常有幫助和及時的答案。如果我可以延長上述問題,我將如何重新做上述的顏色? I.e沒有將圖像從RGB轉換爲灰度? – Has

1

正如瑞恩指出,您的問題可能是你是如何顯示圖像。這是一個工作示例:

snow = rand(256, 256); 
figure; 
imagesc(snow); 

nClusters = 3; 
clusterIndices = kmeans(snow(:), nClusters); 

figure; 
imagesc(reshape(clusterIndices, [256, 256]));