【问题标题】:Image clustering using matlab使用matlab进行图像聚类
【发布时间】:2013-12-10 08:19:55
【问题描述】:

我有大约 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 矩阵。有人可以告诉我如何找出哪个图像属于哪个群集并显示图像分离的群集吗?我需要以树格式显示集群,每个集群都显示它包含的图像。

【问题讨论】:

  • 您好,我正在解决一个类似的问题,能否请您告诉我您是如何解决的,这将很有帮助。谢谢。

标签: matlab image-processing k-means


【解决方案1】:

有一个函数treeplot 可以帮助生成树结构图。不过,我并不完全清楚它属于特殊工具箱还是核心 Matlab。

如果它在工具箱中并且您没有访问权限,您也可以考虑调整uitree 以满足您的需求;但请注意,此函数未记录在案,因此可能会在未来版本中消失或改变行为。

【讨论】:

  • 谢谢。由于我需要显示属于每个集群的图像,因此我无法使用 treeplot
猜你喜欢
  • 2014-05-29
  • 2015-08-31
  • 1970-01-01
  • 2014-04-07
  • 2016-05-11
  • 2014-11-30
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多