如何在MATLAB中从一包特征分类器中可视化单词?

时间:2016-01-29 11:21:28

标签: matlab computer-vision matlab-cvst object-recognition

我正在使用一些功能来对MATLAB中的组织学图像进行分类。

这是我使用的代码。它来自`imageCategoryClassificationExample

压缩数据集的位置

url=http://www.vision.caltech.edu/Image_Datasets/Caltech101/101_ObjectCategories.tar.gz';

将输出存储在临时文件夹中

outputFolder = fullfile(tempdir, 'caltech101');

rootFolder = fullfile(outputFolder, '101_ObjectCategories');
imgSets = [ imageSet(fullfile(rootFolder, 'airplanes')), ...
            imageSet(fullfile(rootFolder, 'ferry')), ...
            imageSet(fullfile(rootFolder, 'laptop')) ];

确定类别中图像的最小数量

minSetCount = min([imgSets.Count]);

使用partition方法修剪集合。

imgSets = partition(imgSets, minSetCount, 'randomize');

将这些集合分为训练和验证数据。

[trainingSets, validationSets] = partition(imgSets, 0.3, 'randomize');

创建功能分类器包

bag = bagOfFeatures(trainingSets);

此外,bagOfFeatures对象提供了encode方法 计算图像中的视觉单词出现次数。它产生了直方图 这成为图像的新的和缩小的表示。

img = read(imgSets(1), 1);
[featureVector,words] = encode(bag, img);

绘制视觉词出现的直方图

figure
bar(featureVector)
title('Visual word occurrences')
xlabel('Visual word index')
ylabel('Frequency of occurrence')

创建功能包对象后,如何可视化最终的码本以及哪些视觉词组成每个图像?我可以从这些单词重建图像吗?我认为这与使用encode创建visualWords对象有关。但是我该怎么办呢?

1 个答案:

答案 0 :(得分:0)

MATLAB中没有内置函数可以帮到你。但是这个主题有papers