2016-11-24 5 views
0

私はMATLABの使用を始めました。私は、k-meansとID3アルゴリズムを使って画像を分類しなければならないプロジェクトを行うことになっています。k-meansとID3 Algorithmを使って、どのように画像を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のドキュメントから抜粋したものです。

すべてのサンプルと対応するクラスターを取得したら、クエリーの特徴ベクトルとクラスターの中心を距離メトリックで簡単に比較し、最も近いクラスターを結果として簡単に取得できます。

関連する問題