如何解决“意外的图像尺寸:所有图像必须具有相同的尺寸”?

时间:2019-06-04 03:39:34

标签: matlab deep-learning dataset grayscale

基于this示例,我正在尝试在matlab上使用深度学习对图像进行分类。

我创建了一个带有X和O的图像数据集以区分它们,现在我试图更改代码以训练自己的模型,我改为:

digitDatasetPath = fullfile(matlabroot,'toolbox','nnet','nndemos', ...
    'nndatasets','XODataset');
imds = imageDatastore(digitDatasetPath, ...
    'IncludeSubfolders',true,'LabelSource','foldernames');

figure;
perm = randperm(20,4);
for i = 1:4
    subplot(2,2,i);
    imshow(imds.Files{perm(i)});
end

labelCount = countEachLabel(imds);

img = readimage(imds,1);
size(img)

numTrainFiles = 16;
[imdsTrain,imdsValidation] = splitEachLabel(imds,numTrainFiles,'randomize');

layers = [] % as the example I linked

net = trainNetwork(imdsTrain,layers,options);

YPred = classify(net,imdsValidation);
YValidation = imdsValidation.Labels;

accuracy = sum(YPred == YValidation)/numel(YValidation);

但是当我进入trainNetwork()时,出现以下错误:

  

使用trainNetwork时出错(第165行)。图片尺寸超出预期:所有图片的尺寸必须相同。

但是我所有的图像都是28x28像素,例如示例。我搜索了一个解决方案,并找到了this代码来收集图像信息。使用此功能,我注意到我的图像之一是“真彩色”,其他图像是“灰度”,这可能是问题所在吗?如何将文件夹中的所有图像从“真彩色”转换为“灰度”?

0 个答案:

没有答案