我想阅读SVM培训的培训图像集。这是代码
%Location of the image.
Class1 = 'Training/11';
% load the dataset
dirList = dir(fullfile(Class1,'*.ppm'));
%dirList
files={dirList.name}';
我得到的文件类型是cell类型。我如何访问这些图像来执行某些操作,比如显示它并进行特征提取?
当我试图展示它时:
figure, imshow(files)
我收到了这个错误
Error using imageDisplayValidateParams
Expected input number 1, I, to be one of these types:
double, single, uint8, uint16, uint32, uint64, int8, int16, int32, int64,
logical
Instead its type was cell.
Error in imageDisplayValidateParams (line 12)
validateattributes(common_args.CData, {'numeric','logical'},...
Error in imageDisplayParseInputs (line 79)
common_args = imageDisplayValidateParams(common_args);
Error in imshow (line 220)
[common_args,specific_args] = ...
您知道如何在文件中访问和处理这些图像吗?
答案 0 :(得分:2)
首先,imshow
需要一个实际图像作为输入。您正在指定字符串的单元格数组。最重要的是,您一次只能显示一个图像。尝试访问单个单元格元素,然后使用它们读取图像并在屏幕上显示它们。
im1 = imread(files{1}); % Read in first image
imshow(im1); % Show the first image
figure;
im2 = imread(files{2}); % Read in second image
imshow(im2); % Show the second image
如果您想要显示所有这些内容,可以尝试使用imshow
和subplot
的组合。
假设您有9张图片,并希望将它们整理成3 x 3网格。你可以这样做:
figure;
for i = 1 : 9
subplot(3, 3, i);
im = imread(files{i});
imshow(im);
end
现在进行特征提取,我的建议是你看一下MATLAB附带的计算机视觉工具箱。有一整套工具可以为您执行特征提取。诸如MSER,SURF,HOG之类的东西以及匹配图像对之间关键点的方法。
点击此链接:http://www.mathworks.com/products/computer-vision/code-examples.html