Matlab图像集方法读取顺序和图像名称?
Matlab imageset method order of read and name of image?
%% Load images from folder
% Use imageSet to manage images stored in multiple folders
imset = imageSet('pet_images','recursive');
% Preallocate arrays with fixed size for prediction
imageSize = cnnModel.net.normalization.imageSize;
trainingImages = zeros([imageSize sum([imset(:).Count])],'single');
% Load and resize images for prediction
for ii = 1:numel(imset)
for jj = 1:imset(ii).Count
imshow(read(imset(ii),jj));
trainingImages(:,:,:,jj) = imresize(single(read(imset(ii),jj)),imageSize(1:2));
end
end
我想从目录中读取图像。但它给了我一些错误的图像。
Assignment has fewer non-singleton rhs dimensions than non-singleton subscripts
我使用断点来查找哪个图像有问题。当它出错时,我捕获图像的索引并显示此图像。
我从这个目录中找到这张图片。它的顺序是 1061(根据名称排序)但 jj 的值为 1012.
我有三个问题。
- 为什么会出现这个错误? ((错误)图像的分辨率:
(263x380))
- 为了找到图像,我检查了图像和相同类型
猫。在for循环中,我可以得到这张图片的名字吗?
- imageset读取目录时,根据什么读取
(名称、类型、日期等...)?为什么行号(1061)和索引(1012)
是不匹配吗?
- 如果图片是灰度的,会报错
因为 trainingImages 数组需要 rgb 图像。
获取图片名称,可以使用下面的代码;
imshow(read(imset(ii),jj));
a = select(imset(ii),jj);
str = cellstr(a(1,1).ImageLocation);
title(str);
因为图像集按字母顺序排列但方式不同(名称)例如。
- 目录顺序:img1、img2、img3、... img9、img10、img11...img20、...
- imageSet 读取顺序:img1, img2, img3,... img9, img10, img20... img21, ...
%% Load images from folder
% Use imageSet to manage images stored in multiple folders
imset = imageSet('pet_images','recursive');
% Preallocate arrays with fixed size for prediction
imageSize = cnnModel.net.normalization.imageSize;
trainingImages = zeros([imageSize sum([imset(:).Count])],'single');
% Load and resize images for prediction
for ii = 1:numel(imset)
for jj = 1:imset(ii).Count
imshow(read(imset(ii),jj));
trainingImages(:,:,:,jj) = imresize(single(read(imset(ii),jj)),imageSize(1:2));
end
end
我想从目录中读取图像。但它给了我一些错误的图像。
Assignment has fewer non-singleton rhs dimensions than non-singleton subscripts
我使用断点来查找哪个图像有问题。当它出错时,我捕获图像的索引并显示此图像。
我从这个目录中找到这张图片。它的顺序是 1061(根据名称排序)但 jj 的值为 1012.
我有三个问题。
- 为什么会出现这个错误? ((错误)图像的分辨率: (263x380))
- 为了找到图像,我检查了图像和相同类型 猫。在for循环中,我可以得到这张图片的名字吗?
- imageset读取目录时,根据什么读取 (名称、类型、日期等...)?为什么行号(1061)和索引(1012) 是不匹配吗?
- 如果图片是灰度的,会报错
因为 trainingImages 数组需要 rgb 图像。 获取图片名称,可以使用下面的代码;
imshow(read(imset(ii),jj)); a = select(imset(ii),jj); str = cellstr(a(1,1).ImageLocation); title(str);
因为图像集按字母顺序排列但方式不同(名称)例如。
- 目录顺序:img1、img2、img3、... img9、img10、img11...img20、...
- imageSet 读取顺序:img1, img2, img3,... img9, img10, img20... img21, ...