エラー:reshapeはなぜ発生するのですか?
4 Ansichten (letzte 30 Tage)
Ältere Kommentare anzeigen
takmakome
am 26 Jun. 2022
Kommentiert: takmakome
am 26 Jun. 2022
imds = imageDatastore('機械学習用',"IncludeSubfolders",true,"LabelSource","foldernames");
whos imds
T = imshow(readimage(imds,1))
whos T
D = zeros(128,128,1,41011);
for i = 1:numel(imds.Files)
II = imread (imds.Files{i});
I = reshape(II,128,128);
D(:,:,:,i) = I;
end

なぜこのエラーが出るのかが初心者でわからないので改善できるアイデアをご教授してくださると助かります。
写真は128×128 IIが10×12でサイズを合わせるためにresizeで128×128にしたらこのようなエラーが出てしまいました。 わかりにくいと思いますがお願いします。
0 Kommentare
Akzeptierte Antwort
Atsushi Ueno
am 26 Jun. 2022
>なぜこのエラーが出るのか (中略) IIが10×12でサイズを合わせるためにresizeで128×128に
エラーメッセージの通り、reshape関数で入力データの要素数を変更してはなりません。10*12=120画素を128*128=16384画素に変更しようとしていますがそれは出来ません。今の目的に適する関数はimresize関数です。
imds = imageDatastore('機械学習用',"IncludeSubfolders",true,"LabelSource","foldernames");
whos imds
T = imshow(readimage(imds,1))
whos T
D = zeros(128,128,1,41011);
for i = 1:numel(imds.Files)
II = imread (imds.Files{i});
I = imresize(II,[128,128]); % reshape(II,128,128);
D(:,:,:,i) = I;
end
Weitere Antworten (1)
Atsushi Ueno
am 26 Jun. 2022
% Deep Learning に入力するため画像をリサイズする場合、画像ファイルそのものには手を加えることなく、
% プログラム側で imageDatastore + augmentedImageDatastore を組み合わせて使うことで、
% Deep Learning への画像入力サイズを調整することができます。
imds = imageDatastore('機械学習用',"IncludeSubfolders",true,"LabelSource","foldernames");
augimds = augmentedImageDatastore([128 128 1],imds);
Deep Learning に入力するため画像をリサイズするのであれば、上記のimdsではなくaugimdsを用いれば、画像をリサイズしなくても自動的に変換する仕組み(ミニバッチ)を動かしてくれます。
0 Kommentare
Siehe auch
Kategorien
Mehr zu Deep Learning Toolbox finden Sie in Help Center und File Exchange
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!