読者です 読者をやめる 読者になる 読者になる

無限壁破り駆動開発 <colspan=∞>

テーマは北海道, オープンデータ, Web技術, HTML5, d3.js, カメラ, 韓国語, Javascript, Ruby, Python

社外レンズで撮影したキヤノンEOS RAW画像を純正現像ソフトDPPでレンズ補正する

本エントリでは、シグマ、タムロントキナー等の社外レンズを用いて撮影した、キヤノン製一眼レフカメラ(EOS Digital)のRAW画像を、キヤノン純正現像ソフトDPPでレンズ補正する方法を紹介する。

DPPとは

DPPとはDigital Photo Professionalの略。キヤノン製一眼レフカメラ(EOS Digital)でRAW撮影した写真の現像をするための純正ソフトウェアである。このソフトウェアを使ってRAW画像(CR2ファイル)を現像すれば、ボディ内で生成されるJPEGよりもきれいな写真を現像できる。なぜなら、撮像素子から得られた生のデータを無劣化で保存された情報を元に、PCの計算資源をふんだんに使って現像できるからである。 特にノイズ補正やレンズ補正が強力で、一昔前のボディで撮影した写真も、最新のボディと同等かそれ以上の画質で現像できるのが特徴である。私は特にレンズ補正が大好きである。写真の四隅に現れる色収差(ズレ)が、とてもきれいに修正されるからだ。だから、私は一眼(1D Mark II N, Kiss X4 , EOS M)でもコンデジ(S95,S100)でもできるだけRAWで撮っている。

f:id:colspan:20140709230628j:plain

DPPの制約

しかしながら、DPPのレンズ補正機能は純正レンズのみに限定されている。故に、シグマ、トキナータムロン等の社外レンズに適用できない。レンズ補正のためには光学的な特性を表す様々なパラメタが必要になるためである。

f:id:colspan:20140709230634p:plain

カメラメーカーとしては、純正レンズの優位性を示すためにも、社外のレンズに対してレンズ補正の機能を解放するとは考えられないため、今後の改善は期待できない。素直に社外の現像ソフトを買えばよいのではあるが、購入に踏み切れない人もいるはず(筆者がそうだ)。そこで、無理矢理でもDPPで社外レンズのレンズ補正ができないか、試してみた。結論からいうと、できた。

純正以外のレンズにも適用する方法 = Exifのレンズ情報を純正レンズのものに書き換える

レンズ補正の社外のレンズでも適用可能にする方法がある。それはExifを書き換え、純正レンズに偽装する方法である。これによって、あっけなく適用可能になる。もちろん、補正のための光学的なパラメタはでたらめだろうから、最適な補正ではないことは自明であるが、色収差・色にじみはきれいに消える(微調整もできるのでかなりきれいになる)。この機能を無理矢理にでも使った方が、画質は圧倒的によい。

下記に貼った例は、イタリアのフィレンツェのドゥオモをTokina AT-X PRO 124 DX IIで撮影したものである。当然ながらDPPでのレンズ補正は許されていない。しかしながら、Exifのレンズ情報を純正レンズとして偽装することで可能になった。

f:id:colspan:20140709230540p:plain f:id:colspan:20130531203032j:plain

Exifの書き換え方法

私はexiftoolを使って書き換えた。 Exifにまつわる様々な処理を簡単に行えるコマンドラインツールである。(コマンドプロンプト、ターミナルをある程度使いこなす必要があるので注意)

入手先

以下のexiftoolの公式Webサイトから入手可能である。

ExifTool by Phil Harvey

インストール方法

Windows

上記URLからexiftool-*.zipをダウンロード後、任意の場所に解凍。 PATHを通すなりして任意の場所から実行しやすい環境を作る。

Mac

上記URLからexiftool-*.dmgをダウンロード後、インストーラを実行。インストールするだけで任意パスから実行可能になる。

exiftoolを呼び出す具体的なコマンド

exiftoolを使ってLensType, MinFocalLength, MaxFocalLengthの属性を書き換える。

exiftool -MinFocalLength=[最小焦点距離] -MaxFocalLength=[最大焦点距離] -LensType='[レンズモデル名(選定方法は後述)]' [書き換え対象のファイル名]
※ 上書きされるので注意

偽装レンズの選定方法

偽装するレンズは、撮影したレンズと焦点距離が似ている純正レンズを指定するとよい。 例えば、 Tokina AT-X PRO 124 DX II(12-24mm f4.0)なら、純正の超広角レンズであるCanon EF-S 10-22mm f/3.5-4.5 USMを選ぶ。

exiftool -MinFocalLength=10 -MaxFocalLength=22 -LensType='Canon EF-S 10-22mm f/3.5-4.5 USM' IMG_0155\ 2.CR2
※ 上書きされるので注意

利用可能なレンズ一覧は下記exiftoolのマニュアルサイトの章"Canon LensType Values"に記されている。

Canon Tags

なお、焦点距離の数値(MinFocalLength, MaxFocalLength)は各レンズと一致するように設定すること。そうでなければレンズ補正機能は使えない。

具体例

上記操作によって純正レンズ情報に偽装したRAW画像ファイルをDPPに読ませると、レンズ補正機能が使えるようになる。

f:id:colspan:20140709230638p:plain f:id:colspan:20140709230718p:plain

まとめ

DPPにおいてタムロンやシグマ、トキナーなどの社外レンズで撮影したRAW画像に対してもレンズ補正が可能になる方法を紹介した。 Exifに記録されているレンズ情報を、強制的に純正レンズのものに書き換えることで可能になる。 LightroomSilkypixなどの現像ソフトウェアを買うまでには至らない場合に、間に合わせの機能として使うのはいかがだろうか。

市川ソフトラボラトリー SILKYPIX Developer Studio Pro5 Win/Mac

市川ソフトラボラトリー SILKYPIX Developer Studio Pro5 Win/Mac

参考文献