2016-11-24 63 views
0

我剛開始使用MATLAB。我應該做一個項目,使用k-means和ID3算法對圖像進行分類。如何使用k-means和ID3算法對matlab中的圖像進行分類?

例如,考慮動物的數據庫。圖像必須根據顏色和紋理等特徵進行分類。稍後可以通過輸入動物的顏色,紋理和行爲來檢索這些圖像。具有指定特徵的動物將被檢索。 我如何使用MATLAB來實現這個項目?我可以得到該程序的解釋嗎?

回答

2

首先,嘗試從圖像中提取及其相應的標籤功能。 假設X表示所有圖像的特徵矩陣。所以,每行X表示每個樣本的特徵向量。

opts = statset('Display','final'); 

k = 2; 
startPositions = [0.01 0.01 ; -0.01 -0.01]; 

[idx,ctrs] = kmeans(X,k,... 
        'Distance','city',... 
        'Options',opts,... 
        'Start',startPositions ... 
       ); 

plot(X(idx==1,1),X(idx==1,2),'r.','MarkerSize',12) 
hold on 
plot(X(idx==2,1),X(idx==2,2),'b.','MarkerSize',12) 
plot(ctrs(:,1),ctrs(:,2),'kx',... 
    'MarkerSize',12,'LineWidth',2) 
plot(ctrs(:,1),ctrs(:,2),'ko',... 
    'MarkerSize',12,'LineWidth',2) 
legend('Cluster 1','Cluster 2','Centroids',... 
     'Location','NW') 

上面的代碼取自Matlab文檔。

現在,一旦你把所有的實例和其相應的集羣,您可以輕鬆地比較與集羣中心的查詢特徵向量在一些距離度量的條款,並採取最接近集羣的結果。

相關問題