【Pillow】スマホで画像情報EXIFの取得テスト
はじめに
画像ファイルには、GPSや撮影日時、カメラのメーカーや機種、ストロボの設定などの情報が埋め込まれております。
これをEXIF情報というそうですが、Pythonを使ってEXIFを取得したり編集したりできるのだとか。
EXIFを取得できれば、撮影場所(GPSをONで撮影したもののみ)や撮影日別など条件に合わせて画像が取得できたり、それぞれをフォルダ毎に振り分けたりが出来そうです。
今回はそのEXIFを取得します。
写経。
何のオリジナリティの欠片もなくスマホで動くかの実験のみ。
写経の経典はこちら
Python Tips:画像の Exif データを取得したい - Life with Python
ありがたやありがたや。(^人^)<(_ _*)>
記載されたコードはPython2で書かれているようなので、print関数に()
を付け加えました。
その他、少しだけ手を加えております。
作業環境
Androidスマホ ソニー
Pydroid3(python3.7)
Jupyter Notebook
外部モジュール Pillow
※ QpythonではPillowのインストールができませんでした。
目次
モジュールのインストール
画像を扱う外部モジュールのPillowを使用しますのでインストールが必要です。
pip install pillow
EXIFの取得
情報取得部分は関数で書かれてあります。
実行すると長いEXIF情報がブワーッと出ます。
# ライブラリ読み込み from PIL import Image from PIL.ExifTags import TAGS # 関数の定義 01 def get_exif(file): """Get EXIF of an image if exists. 指定した画像のEXIFデータを取り出す関数 @return exif_table Exif データを格納した辞書 """ im = Image.open(file) # Exif データを取得 # 存在しなければそのまま終了 空の辞書を返す try: exif = im._getexif() except AttributeError: return {} # タグIDそのままでは人が読めないのでデコードして # テーブルに格納する exif_table = {} for tag_id, value in exif.items(): tag = TAGS.get(tag_id, tag_id) exif_table[tag] = value return exif_table ######## 実行 ######## import glob # スマホのカメラ画像保存フォルダ内のJPG全取得 pic_lst = glob.glob("/storage/emulated/0/DCIM/100ANDRO/*.JPG") # JPG画像の枚数を取得 print("画像数",len(pic_lst)) # 読み取る画像(リストの一枚目だけ) pic = pic_lst[0] # EXIF情報の出力 # (注意! 辞書データを大量に吐き出します) print(get_exif(pic)) # => Exif 情報を格納した辞書 # Exif 情報がない場合には空の辞書
画像数 423 {'GPSInfo': {}, 'ResolutionUnit': 2, 'ExifOffset': 220, 'Make': 'Sony', 'Model': === 略 === }
撮影日時のみ取得
カメラ画像保存フォルダ内の1枚目画像からEXIF情報の撮影日時を取り出す。
# 関数の定義 02 def get_date_EXIF(file): """Get date of an image if exists 指定した画像の Exif データのうち日付データを取り出す関数 @return yyyy:mm:dd HH:MM:SS 形式の文字列 """ # get_exif_of_imageの戻り値のうち # 日付データのみを取得して返す exif_table = get_exif_of_image(file) return exif_table.get("DateTimeOriginal") print(get_date_EXIF(pic)) # => yyyy:mm:dd HH:MM:DD 形式の文字列 # Exif データが存在しない場合は None
2019:09:10 15:01:58
撮影日時の取得ができた。
おわりに
画像をsnsに上げたりクラウドに保存すれば、これらの情報はサーバー側が収集し、分析されている訳です。
行動パターンの分析やプロファイルを作るのも簡単でしょう。
あまり気持ちのよいものではないな…
その他
関連ページ