2013年3月27日水曜日

デジカメでよく使う焦点距離を調べる (1) Exifの抽出

まえおき


半ば趣味で一眼レフ用の交換レンズを集めているうちに、
手元にどの程度レンズがあるのか分からなくなってきたので、

将来的にレンズを整理することを見越して、
まずは今までの撮影データからよく使う焦点距離を調べてみることにしました。

手持ちのレンズの中でも2度と出番がなさそうなレンズたち

下準備


JPEGファイルから焦点距離を調べるために必要なプログラムについては
  • C#でコンソールアプリ
    • 一番手っ取り早そう
  • Exifデータの取得には、既存のアプリを利用することに。
    • とりあえずは焦点距離と使用機種が分かれば
      今回の目的には十分かなと(※)
そんな感じでふんわり目に仕様を決めたところで適当にググった結果、 
Exifデータの取得には、Exiv2 というWindows用バイナリ(コンソールアプリ)を使うことにしました。

(※)レンズのID及び焦点距離から、
撮影に使用したレンズを特定することも技術的には可能、
ではあるみたいだけど、時間がないので今回は却下。

C#で作成したバッチファイル的なもの

というわけで、
出来上がったC#のコンソールアプリが以下のものになります。



ザッと書いて、えいや、で走らせたところ
おおよそ2万枚のJPEGファイルから、数分かからずにExifを抽出できたので、
もうこれでいいやという感じです。

なお、上記コードを実行すると、

  • ファイル名
  • 機種名
  • タイムスタンプ
  • 焦点距離

をタブ区切りで一行ずつ出力したCSV(TSV)ファイルを出力します。

アプリの出力例
UTF-8でCSVファイルを出力しているため、
上記出力例は、Excelで表示するにあたり

  • CSVファイルの文字エンコーディングをShift-JISに変換後
  • Excelの機能でタブで区切って表示しています。

次回は、出力したデータを基に、撮影データの統計情報を可視化したいなぁと。