繁体   English   中英

使用Matlab进行图像聚类

[英]Image clustering using matlab

我有大约400张图像。 属于20个不同类别的20张图像。 我需要执行自动图像聚类并显示结果,即以树格式与图像聚类。

我是第一次使用MATLAB,并且可以执行以下操作

  1. 加载所有图像
  2. 将图像转换为灰度
  3. 将所有图像调整为75 * 75
  4. 提取筛选功能
  5. K表示20个群集的群集

现在,我无法弄清楚如何以树格式显示属于不同群集的图像。

我的代码在这里

for i = 1:length(Names)
   im = imread(Names{i});
   im = im2single(im2bw(im)) ; %-gray
   im=imresize(im, [75 75]);
   %-----------%      
   [f1, descr] = vl_dsift(im2single(im));
   Y = datasample(descr,500,2,'Replace',false);
   descriptors(:,:,1) = Y;
   descriptors=double(descriptors);
end 
%kmeans
numClusters = 20 ;
[centers, assignments] = vl_kmeans(descriptors, numClusters);

我得到的输出是中心128*20 ,分配是1*500矩阵。 有人可以告诉我如何找出哪个图像属于哪个群集并显示图像分离的群集吗? 我需要以树格式显示群集,每个群集显示它包含的图像。

有一个功能treeplot ,可帮助生成树形结构图。 我还不清楚它是属于一个特殊的工具箱还是Matlab的核心。

如果它在工具箱中并且您没有访问权限,则可以选择考虑将uitree调整为您的需要; 但请注意,此功能尚未记录,因此在将来的版本中可能会消失或更改行为。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM