« [iPhone]iPhone 3Gのホームボタンのダブルプッシュ操作で「カメラ」を起動する | Main | Gakken別冊大人の科学マガジン「シンセサイザークロニクル」発刊記念イベント「フロクde夏フェス」に行ってきました »

2008.07.29

[iPhone]iPhone 3Gの「カメラ」で撮影した画像の位置情報を修正する

iPhone 3Gの「カメラ」で撮影した画像のEXIFには、Core Location(GPS/基地局/WiFi)から取得した緯度経度・位置情報が埋め込むことができる上、加速度センサーから取得した情報を元に割り出した画像の向きをEXIFのOrientationに記録をしていて、とても案配がいいですよね。 これからのデジカメはこうあるべき。

しかし、位置情報がどうもおかしい。

日本で撮影された画像のEXIFに埋め込まれた位置情報は、北太平洋上を指し示すと思います。

経度(Longitude)情報のGPSLongitudeRefがWestになっていますが、これをEastに直してやると、例えば、Picasaなどにアップロードした際の地図上の表示地点が正しくなります。

直す方法はいろいろあるかと思いますが、Exiv2を使ったやり方は以下のようになります。

Exiv2は、Mac OS XならMacPortsからスコっとインストールできます。

$ sudo port install exiv2

各種Linuxでもパッケージ管理ソフトウェア経由でスコっとインスコできるかと思います。

$ sudo apt-get install exiv2

で、以下のようなスクリプトを用意します。

#!/bin/sh
exiv2 -h >/dev/null 2>&1
if [ $? -eq 127 ]; then
    echo "ERROR: exiv2 not found."
    echo "You should install exiv2 from MacPorts or APT or and so on."
    exit
fi
for i in *.[Jj][Pp][Gg]; do
    if [ X`exiv2 -pt "${i}" | grep Exif.GPSInfo.GPSLongitudeRef | awk '{print $4}'` = "XWest" ]; then
        exiv2 -M"set Exif.GPSInfo.GPSLongitudeRef E" "${i}"
        echo "Processed ${i}"
    fi
done

適当な名前(仮にここでは「fix_iphone_photo.sh」)で保存をして、実行権を付けます。

iPhoneから吸い出してきた、おかしな位置情報の入った画像を集めたディレクトリで上記スクリプトを実行すると、そこにある画像のEXIFがいっぺんに修正されます。

一応、バックアップを取ってからやった方がいいかと思います。無保証です。

$ chmod +x fix_iphone_photo.sh
$ sudo cp fix_iphone_photo.sh /usr/local/bin
$ cd ~/Pictures
$ fix_iphone_photo.sh

フォルダが掘られているのであれば、GNU findなどで再帰検索をかけるといいんではないでしょうか。

日本ではこれで大丈夫だと思いますが、自分は実のところ緯度・経度の仕組みがよく分かってないもんで、おかしな結果になったらすいません。

|

« [iPhone]iPhone 3Gのホームボタンのダブルプッシュ操作で「カメラ」を起動する | Main | Gakken別冊大人の科学マガジン「シンセサイザークロニクル」発刊記念イベント「フロクde夏フェス」に行ってきました »