2016-11-24 65 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文档。

现在,一旦你把所有的实例和其相应的集群,您可以轻松地比较与集群中心的查询特征向量在一些距离度量的条款,并采取最接近集群的结果。

相关问题