我正在使用一些功能来对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
对象有关。但是我该怎么办呢?