2016-11-24 2 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 설명서에서 가져온 것입니다.

일단 모든 예제와 해당 클러스터가 있으면 일단 거리 메트릭에 따라 클러스터의 중심과 쿼리 특징 벡터를 쉽게 비교하고 가장 가까운 클러스터를 결과로 가져올 수 있습니다.

관련 문제