4
1

More than 3 years have passed since last update.

UnidentifiedImageError: cannot identify image file の解決方法について

Last updated at Posted at 2021-08-10

はじめに

kerasで画像認識をしている中、GoogleColaboratoryからjyupiter labに変更し、実行しようとしたときに発生しました。
調べても具体的な解決方法がなかったので私が解決した際に行ったことを記載しようと思います。

原因と解決

どうやら学習用に用意した画像をちゃんと認識できていないようなので、pythonの組み込み関数であるopenを使用して一度開いてみればよさそう。
開けない画像は編集するなり削除すれば解決しそう。

実際に使ったコード

いくつかラベルを用意しているため、各ラベル一気にできるようにしました。
今回は数が少なかったため、コードを実行しエラーが出たら該当ファイルを編集で済みましたが、数が多いならエラー構文を使って読み込めないファイルを全てピックアップすればいいかと。

import glob

dirs = ["フォルダ名"]

for dir_name in dirs:
    for file in glob.glob(dir_name + "/*.jpg"):
        file_data = open(file, "r")
        file_data.close()

対処法

どうやらjpgファイルに透明度情報が付与されていることが問題だったようで透明度情報を削除すれば解決しました。

具体的には右クリックで編集、名前を付けて保存を選択すると、拡張子が変わっているのでjpg形式に直し保存すると直りました。

使用した訓練用画像はネット上から取得したもので、jpg形式で保存しましたが、透明度情報が付与されたpng形式のファイルを無理矢理jpg形式で保存したことが原因?なのかなと思います。

おわりに

Qiitaへの投稿は初めてで、pythonの経験も浅いため拙い点が多いかもしれませんがご容赦ください。

4
1
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
4
1