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

我有三个问题。

  1. 为什么会出现这个错误? ((错误)图像的分辨率: (263x380))
  2. 为了找到图像,我检查了图像和相同类型 猫。在for循环中,我可以得到这张图片的名字吗?
  3. imageset读取目录时,根据什么读取 (名称、类型、日期等...)?为什么行号(1061)和索引(1012) 是不匹配吗?
  1. 如果图片是灰度的,会报错
    因为 trainingImages 数组需要 rgb 图像。
  2. 获取图片名称,可以使用下面的代码;

    imshow(read(imset(ii),jj));
    a = select(imset(ii),jj);
    str = cellstr(a(1,1).ImageLocation);
    title(str);
    
  3. 因为图像集按字母顺序排列但方式不同(名称)例如。

    • 目录顺序:img1、img2、img3、... img9、img10、img11...img20、...
    • imageSet 读取顺序:img1, img2, img3,... img9, img10, img20... img21, ...