プログラム上で生成し​たイメージデータをそ​のままディープラーニ​ングに読み込みができ​ないのはなぜですか?

1 view (last 30 days)
Casey
Casey on 14 Jul 2022
Commented: Hiro Yoshino on 15 Jul 2022
...
cd('A:/image_file')
print(figure1,'-dmeta',[num2str(i),'枚目_画像','.jpg'])
...
上記のプログラム(一部抜粋)で生成した画像を以下のように取り込みました。
これらは位相画像で、軸ラベルおよびカラーマップも含んでおります。
これらの画像を、ディープラーニングに用いるイメージデータストアとして読み込みたいのですが、この状態だと「ファイルを読み取れません」というエラーが出てしまいます。
画像を一度開いて上書き保存をしたところ、読み込みに成功したのですが、10000枚もの画像を一つずつ上書き保存するには膨大な時間を割かなければなりません。この作業を行わずにイメージデータストアとして画像を読み込むことは可能でしょうか。
  2 Comments
Atsushi Ueno
Atsushi Ueno on 15 Jul 2022
>画像を一度開いて上書き保存をしたところ、読み込みに成功した
Windowsのペイント等で当該画像を開いて上書き保存する際にフォーマットが変わったからです。
  • 画像を開く:拡張子によらずフォーマットを自動判定して開く (拡張メタファイルを開く)
  • 画像を保存:保存名の拡張子.jpgに合ったフォーマットで保存する (JPEG形式で保存する)
Hiro Yoshino
Hiro Yoshino on 15 Jul 2022
imageDatastore の読み込みオプションに ReadFcn
があります。ここで、画像に施したい処理を書いておくと、読み込みのタイミングで処理を行ってくれます。元の画像を変換する必要がある時にこのテクニックを知っておくと便利かなと思います。

Sign in to comment.

Answers (1)

Atsushi Ueno
Atsushi Ueno on 14 Jul 2022
print(figure1,'-dmeta',[num2str(i),'枚目_画像','.jpg']) % 【現状】
print(figure1,'-djpeg',[num2str(i),'枚目_画像','.jpg']) % 【修正提案】
上記print関数は「拡張子.jpg の拡張メタファイル」を保存します。混乱の原因なので拡張子と中身は合わせるべきです。
拡張子も中身もJPEG(n枚目_画像.jpg)なら、イメージデータストアに取り込んでディープラーニングに読み込めます。

Categories

Find more on Deep Learning Toolbox in Help Center and File Exchange

Community Treasure Hunt

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

Start Hunting!