【发布时间】:2013-12-10 08:19:55
【问题描述】:
我有大约 400 张图片。属于 20 个不同类别的 20 张图像。我需要执行自动图像聚类并显示结果,即具有树格式图像的聚类。
我是第一次使用 MATLAB,我已经设法执行以下操作
- 加载所有图片
- 将图像转换为灰度
- 将所有图像调整为 75*75
- 提取筛选特征
- 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