エラー:reshapeはなぜ発生するのですか?
    4 visualizaciones (últimos 30 días)
  
       Mostrar comentarios más antiguos
    
    takmakome
 el 26 de Jun. de 2022
  
    
    
    
    
    Comentada: takmakome
 el 26 de Jun. de 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 comentarios
Respuesta aceptada
  Atsushi Ueno
      
 el 26 de Jun. de 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
Más respuestas (1)
  Atsushi Ueno
      
 el 26 de Jun. de 2022
        % Deep Learning に入力するため画像をリサイズする場合、画像ファイルそのものには手を加えることなく、
% プログラム側で imageDatastore + augmentedImageDatastore を組み合わせて使うことで、
% Deep Learning への画像入力サイズを調整することができます。 
imds = imageDatastore('機械学習用',"IncludeSubfolders",true,"LabelSource","foldernames");
augimds = augmentedImageDatastore([128 128 1],imds);
Deep Learning に入力するため画像をリサイズするのであれば、上記のimdsではなくaugimdsを用いれば、画像をリサイズしなくても自動的に変換する仕組み(ミニバッチ)を動かしてくれます。
0 comentarios
Ver también
Categorías
				Más información sobre Deep Learning Toolbox en Help Center y File Exchange.
			
	Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!
