Ubuntu12.04 でデジカメ写真編集 Vol.3 (Exif 情報の取り扱い)
目次
目的
"Olympus STYLUS-1s" を購入したため、それで撮影した RAWファイルの画像を Ubuntu12.04 にて Photoshop と同様な写真編集を行えるよう、Vol.2 まで作業を行ってきた。
Vol.3 の本エントリーでは、Vol.2 までの作業で写真のExif情報が失われてしまっていたため、その対処法について記載する。
経緯
Vol.2 までの手順で、UFRaw を用いてRAWファイルからTIFF画像現像を行い、GIMP による編集を経て、JPEG画像を作成しました。
そして、いざ JPEG画像のExif情報を見てみるとカメラ情報などが無く、GIMP で出力した TIFF画像には Exif情報が埋め込まれないという問題に突き当たったのでした。
GIMP doesn't saveEXIF on TIFF files (2014) — Help & Support — gimpusers.com
方法
下記の手順で解決を図りました。
しかし、上記ではExif情報が完全でないことがわかったので、最終的には下記方法を用いました。
- 撮影の際に "RAWファイル+JPEG画像(低品質)" を保存するようにし、JPEG画像(低品質)から編集後のJPEG画像(高品質)にExif情報をコピーする
- Exif編集ツールで特定項目の削除・追加を行う
コマンドラインツールで Exif情報を編集できるものを探す
上記ページを参考に、下記に機能をまとめました。
Table.1 Exif情報を編集できるツールと、それぞれの機能の互換を示す
ツール | Exif情報表示(詳細) | Exif情報コピー | Exif情報削除 |
---|---|---|---|
jhead | jhead -v disp.jpg | jhead -te from.jpg to.jpg | jhead -purejpg delete.jpg |
ImageMagick | identify -verbose disp.jpg | convert from.jpg to.jpg | mogrify -strip delete.jpg |
exiftool | exiftool disp.jpg | exiftool -tagsfromfile -all:all from.jpg to.jpg | exiftool -all= delete.jpg |
上記のなかでも Exif 情報編集のナレッジが多かった "exiftool" を使っていくことにしました。
また "exiftool" では、 "RAWファイルからExif情報をJPEG画像にコピーする" ことができるのも特記事項です。(本エントリ後半で、自分の目的では使えないことが分かるのですが…)
RAWファイルからExif情報をJPEG画像にコピーする
$ exiftool -tagsfromfile ../PA040515.ORF -all:all -overwrite_original PA040515.jpg Warning: MakerNotes too large to write in JPEG segment - PA040477.jpg 1 image files updated $ exiftool ../PA040477.ORF | wc 199 1139 8851 $ exiftool ./PA040477.jpg | wc 76 376 3384
Exif情報を全てコピーしたはずですが、120項目程少ないです。
明らかに "Warning: MakerNotes too large〜" が原因で、しかも小手先では治らなさそうです。*1
試しに GIMP で RAWファイルから JPEG画像現像を行い、そのExif情報を見てみました。
$ exiftool ../PA040477.jpg | wc 67 314 2964
GIMP の UFRaw を経ている時点で、Exif 情報が消えているみたいです。
RAWファイルからどうこうしようというのは諦めて、撮影時にRAWファイル と一緒に "EXIF情報の付加された JPEG画像" を保存するようにし、それから編集済みのJPEG画像にExif情報をコピーすることにします。
オリジナルのExif情報をコピーする
撮影の際に "RAWファイル+JPEG画像(低品質)" を保存するようにし、JPEG画像(低品質)から編集後のJPEG画像(高品質)にExif情報をコピーする
Table.2 登場するファイルの説明
種類 | ファイル |
---|---|
撮影時に保存したRAWファイル | original.ORF |
撮影時に保存したJPEG画像 | original.JPG |
RAWファイルから現像し編集を進めた画像 | modify.jpg |
始めに全てのExif情報数を確認し、失敗するExifコピーを試しています。
その後、撮影時に保存したJPEG画像から、編集を終えたJPEG画像にExif情報をコピーしています。
$ exiftool original.ORF | wc 199 1139 8846 $ exiftool original.JPG | wc 186 1016 8133 $ exiftool modify.jpg | wc 70 342 3096 $ exiftool -tagsfromfile original.ORF -all:all -overwrite_original modify.jpg Warning: MakerNotes too large to write in JPEG segment - modify.jpg 1 image files updated $ exiftool modify.JPG | wc 84 402 3736 $ exiftool -tagsfromfile original.JPG -all:all -overwrite_original modify.jpg 1 image files updated $ exiftool modify.jpg | wc 191 1037 8344
数はぴったり合いませんが、Exif内容として問題なさそうでした。
Exif編集ツールで特定項目の削除・追加を行う
下記サイト郡を参考にして、exiftool によって編集を進めました。
Exiftool is easy to use :: High Earth Orbit
穀風: ExifTool.exe の簡単な使い方 - 編集編
GPS 情報を付加する
下記では wikipedia で調べた、千葉市動物公園のGPS情報を付加しました。*2
$ exiftool -gps:GPSLatitude="35,38,40" -gps:GPSLatitudeRef="N" -gps:GPSLongitude="140,7,31.8" -gps:GPSLongitudeRef="E" -overwrite_original add.jpg 1 image files updated
ちなみに Exif タグについては、マニュアルを見ると良いです。
$ man Image::ExifTool::TagNames
編集に利用したソフトウェア情報を付加する
$ exiftool -Software="GIMP 2.8.14" -overwrite_original add.jpg 1 image files updated
撮影者情報を付加する
$ exiftool -Artist="name" -Copyright="name?" -overwrite_original add.jpg 1 image files updated
写真の回転情報を編集・削除する
下記サイトを参考にしました。
exiftool ・ Image Magick で Exif Orientation 情報を追加・編集する - 君たちは永遠にそいつらより若い
下記は上記サイトからの引用です。
Exif定義 = exiftoolのvalue = Image Magickのvalue ---- 1 = Horizontal (normal) = top-left 2 = Mirror horizontal = top-right 3 = Rotate 180 = bottom-right 4 = Mirror vertical = bottom-left 5 = Mirror horizontal and rotate 270 CW = left-top 6 = Rotate 90 CW = right-top 7 = Mirror horizontal and rotate 90 CW = right-bottom 8 = Rotate 270 CW = left-bottom ※CW=Clock Work = 時計回り
今回は削除のコマンドを記載します。
$ exiftool -Orientation= -overwrite_original PA040219.jpg 1 image files updated
カメラのシリアルを削除する
$ exiftool -makernotes:SerialNumber= -overwrite_original delete.jpg 1 image files updated
またはシリアルはオリジナル画像からコピーしない。
$ exiftool -tagsfromfile original.JPG -all:all -x makernotes:SerialNumber -overwrite_original modify.jpg 1 image files updated
圧縮されていたというExif情報を削除する
本エントリーでは未圧縮画像に、圧縮画像の Exif情報をコピーしたので、この作業が必要です。
$ exiftool -ExifImageWidth= -ExifImageHeight= -overwrite_original delete.jpg 1 image files updated
またはこのExif情報はオリジナル画像からコピーしない。
$ exiftool -tagsfromfile original.JPG -all:all -x ExifImageWidth -x ExifImageHeight -overwrite_original modify.jpg 1 image files updated
下記サイトを参照すると、"Exif Image Width", "Exif Image Height" は元画像より小さく圧縮された場合に付加されるようです。
Exiv2 - Image metadata library and tools
Exif Image Height[Width] values differ from Image Height[Width] values - ImageMagick
Exif Image Width is tag 0xa002, "PixelXDimension" Exif Image Height is tag 0xa003, "PixelYDimension"
蛇足(ピンぼけ画像を修整するプラグイン"refocus-it" のインストール)
Ubuntu日本語フォーラム / Ubuntu10.04へIterative Refocus(Refocus-it)をインストール方法
インストールは上のページを参考にしました。
Iterative refocus plug-in for GIMP download | SourceForge.net
上記ページからダウンロードを行います。
インストールディレクトリ配下からの、インストール方法は下記です。
$ sudo apt-get -y install libgimp2.0-dev $ tar zxvf refocus-it-2.0.0.tar.gz $ cd refocus-it-2.0.0 $ ./configure $ make $ sudo make install
プラグインの使用にはマシンスペック次第ですが、"Dual Core 2.8GHz" でも20分位時間がかかりました。
(configure オプションで Intel compiler を使うなどすると、実行速度が上がるかもしれません。)
所感
今回編集した写真は下記にアップロードしています。
デジタルカメラ初心者の勉強途中で恐縮ですが、気に入っていただけるものが少しでもあれば嬉しいです。
以上