MATLAB Answers

ImageDatas​toreでサイズを変​更しつつ、ラベルづけ​をする方法を教えてく​ださい

조회 수: 8(최근 30일)
Inada Ren
Inada Ren 30 Jul 2020
편집: Kenta 31 Jul 2020
Aというフォルダの中にa,bというサブフォルダがあり、様々なサイズの画像が入っています。これらの画像のサイズを100x100に変換しながら、ImageDatastoreで読み込んで、フォルダ名でラベルづけをする方法を教えてください。
imds = imageDatastore('./A','IncludeSubfolders',true,'LabelSource','foldernames');
サイズの変更がない場合はこれでラベル付けしながら読み込めるのですが、ここからサイズを変更する方法がわかりません。augmentedImageDatastoreでやろうとしましたが、
imageSize = [100 100 1];
imds = augmentedImageDatastore('./A', imageSize, 'IncludeSubfolders',true,'LabelSource','foldernames');
上のコードではうまく動きませんでした。

  댓글 수: 0

댓글을 달려면 로그인하십시오.

답변(1개)

Kenta
Kenta 31 Jul 2020
こちら、ネットで探すと以下のようなわかりやすい記事がありました。
こちらにもあるのですが、
imds = imageDatastore('./A','IncludeSubfolders',true,'LabelSource','foldernames');
でimdsを作成したのち、
auimds = augmentedImageDatastore([100 100 1],imds)
などで、サイズを変更できます。データ拡張(オーギュメンテーション)も、このコマンドに入れ込むことができます。

  댓글 수: 2

Inada Ren
Inada Ren 31 Jul 2020
回答ありがとうございます。早速上記で試してみたところ、サイズ変更はできているのですが、
tbl = countEachLabel(auimds)
上記でラベルを確認してみると「関数 'countEachLabel' の呼び出し内に、不足している引数または正しくない引数データ型がないかを確認してください。」とエラーになってしまいます。
Kenta
Kenta 31 Jul 2020
countEachLabel 関数はaugmentデータストアには適用できないので、augimds=>imdsとすればよいです。ラベルの情報もaugimdsに入っているのでうまく計算は進むと思います。trainNetwork関数に、augimdsや層、オプションを入れたら実行できると思います。

댓글을 달려면 로그인하십시오.

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!