HDRi入門

HDRi入門

昨年秋頃HDR画像/HDRi(high dynamic range image)という興味深い画像のあることを知った.きっかけはネパールのコンマラか何かの検索で見つかった不思議な世界旅行さんの不思議な世界旅行 写真館で,パキスタンのレストラン内部と窓風景HDR写真や法隆寺金堂と五重塔HDR写真を見たことだ.とにかく普通の写真とは随分異なり,絵画調と云うか.....とにかく強烈なインパクトを受けた.

早速HDR画像とは何かあちこち検索してみた.するとたくさんの作例や解説が見つかった.で,HDR画像の大まかな解釈であるが,どうやら以下のようなものらしい.デジカメの撮像ダイナミックレンジは良くて12bitくらい,ノイズ分を差し引くと実質的は11~10bitくらいとか.それをjpegに圧縮して記録すると,8bit階調(256段階)まで落ちる.実際白とび,黒つぶれで困る例に暇ないのは周知の通りだ.一方人の目は相当優れており,かなりの明暗差まで識別可能だそうだ.実際一般的な被写体を肉眼で見た際にハイライト部で白とびを感じたり,シャドー部で黒つぶれに煩わせられることはあまりなかろう.

さて写真はどうするか?先ず標準露光の写真に,-2EVと+2EV露光の写真を合成すると,2EVは4倍露出値なので上下に2bitシフトしたデータを加えたことになり,都合4bit拡張され,12bitデータが得られることになろう.(なお±2EVは白とび,黒つぶれ防止の目安で,これに限定されない)

仮にディスプレイ装置のダイナミックレンジが12bitくらいあれば,このようにして拡張された画像データの明暗差を識別できよう.ただ現状のディスプレイ装置のダイナミックレンジはパソコンのように8bit程度であろう.(ディザ法とかを併用すれば解像度は低下するが,或いは12bit(4096段)くらい可能かも知れないが)

そこで,HDR合成した12bitデータを8bitダイナミックレンジのディスプレイ装置に表示して,人の目で白とび,黒つぶれが無く,その辺りの明暗差を識別できるように明るさを再配分し,8bitデータに再変換する.この操作をトーンマッピング(Tone mapping)と呼ぶようだ.

人の目は大まかには輝度に対して対数的に感じるそうで,トーンマッピングでは元々広ダイナミックレンジ(12bit)画像データを,低ダイナミックレンジ(8bit)データにうまく割り振るのであろう.ただつぶれなく明暗差が識別できるようになろうが,多分自然画像とは異なった見え方になるであろうことは容易に予想できる.逆にこれが絵画調とか面白い画像を生み出す効果があるのだとも思われる.

さて,このようなHDRiに変換するソフトウェアにはどんなものがあるのだろう?HDRで検索してみると,まず上述の不思議な世界旅行さんの画像に付記されたQtpfsgui(Luminance HDR)や,Photomatix Pro,或いはかの有名で高価なPhotoshopなど数多く出てくる.この中でQtpfsgui(Luminance HDR)は無料(PaypalでDonate歓迎されます)なのがありがたい.(←最近バージョンは有料になったようです.2010/9/16)

で,何はともあれ無料のQtpfsgui(Luminance HDR)をダウンロードし使わせてもらった.先般のアンナプルナBCトレックで撮ってあった露出補正0,±2EV補正の3枚セットで試してみたら,下のような絵が得られた.

HDRi習作

アンナプルナBCトレック2010 13日目:ポカラへ下るのページから

Qtpfsguiは3枚セットの自動位置合わせ機能を備え(必要なら手動微調整可能),3枚の原画を放り込むと自動的にHDR合成を行ってくれる.HDR画像が得られと次にトーンマッピングを行うことができる.トーンマッピングにはMantiuk,Fattal...といった幾つかのオペレータを選ぶことが可能で,またそれぞれのオペレータ固有のパラメータを変えることができるようになっている.

筆者は一通りのオペレータを試してみたが,今のところFattalが気に入り,専らこれを用いている.パラメータはちゃんとした意味合いを理解していないながら画像毎に試行錯誤的に変えてみた.結構楽しい!

ところで色々なサイトを参照させてもらうと,QtpfsguiやPhotomatixを活用して得られた複数種のHDR画像をGIMPやPhotoshopで重ね合わせる手法が紹介されている.それでさらに面白い絵が得られるようである.筆者はまだやってないが将来できれば試してみたい.

他に以下のようなことを思った

まあ,いろいろ厄介もあるが,あまり高品質な画像を望まず,並の絵で良しとするなら結構楽しいのでおススメだと思う.(2010/4/13)

擬似的HDRi

下の「HDRi入門」の項で,露出補正0および±2EV補正の3枚セットからHDRiを作ることを述べた.ところで3枚セットは予めそのつもりで用意した画像で,大半は露出補正0の1枚だけで撮影されている.中には当然黒つぶれや白飛びのあるものもある,いやあるどころか大変多い.

アンナプルナBCトレック2010では谷から仰ぐ雪山の光景などでは被写体輝度範囲が広く,谷側の黒つぶれ画像でいっぱいだ.例としてマチャプチャレBC手前とアンナプルナBCでの写真を下に再掲した(左側が元のjpeg画像).

画像処理ソフトでjpeg画像の階調を操作して黒つぶれが回復できないか試してみた.1枚目(上)の画像はちょっと手強くなかなかうまくできなかったが,2枚目(下)の画像は例えば右の斜面のつぶれは結構改善されたように思う.仮にrawデータで撮影しておけば,現像時±2EV程度の補正は可能であるそうだし,またその際にトーンカーブを非線形にすることも可能であろう(推定)から,かなり黒つぶれは改善できるのでは......と期待できそうだ.ただ現実にはrawデータで撮影してなかったので,残念ながらそれは可能ではない.

↓元のjpeg画像↓階調を操作↓擬似的HDRi
マチャプチャレBC手前階調操作画像擬似的HDRi
アンナプルナBC階調操作画像擬似的HDRi

最近divサイトを参考にさせてもらったところ,例えばPhotoWikiさんのGIMPとQtpfsguiを使った偽HDR写真の作り方のように,1枚のjpeg画像からでも半ば擬似的にHDR合成が可能で,それをトーンマッピングしてHDRiを得る方法が述べられていた.先ずはこれを試してみよう.

最初に元のjpeg画像を明るくしたものと,暗くしたもの(加減はまあ適当に)を作り,都合3枚セットを用意する.その後は前項「HDRi入門」で述べた通りQtpfsgui(Luminance HDR)で普通にHDR合成とトーンマッピングを行ってみた.トーンマッピングには好みのFattalオペレータを用いてみた.結果は右側の写真で,黒つぶれ部が見えるようになって,まあ所期の狙いはそれなりに達成されるように思う.ただ雲が暗くなったりしているところはちょっとイマイチかな~とも感じられる.

露出補正0および±2EV補正の3枚セット撮影最大の難点は三脚が要ることだ.(高速連写カメラと腕で不要な人もいようが....)できれば,1枚のデータからもっと確実にきれいにできないものかな~と,どうしても思ってしまう.前記PhotoWikiさんのサイトでは,上述の1枚jpeg画像からHDR合成する方法に加え,1枚のrawデータのみでHDR合成する方法が記されている.それによれば「Qtpfsgui で"File -> Load HDR and tone map directly single raw file"を使って直接RAWをQtpfsguiで読み込ませるだけです」と述べられている.ただ,Qtpfsgui 1.9.3ではFileの下にはこれに相当するコマンドがどうも見当たらない.....バージョンが異なるのかな~?(2010/6/12削除,次の項に関連メモ掲載) まあ,それがなくとも現像ソフトがあれば1枚のrawデータから,0±2EV補正の3データ生成できるそうだから,その手でHDR合成するのがいいかな~...動体でも重ね合わせ被写体ブレが出ないのも魅力的だし,現像ソフトはカメラに付属していた筈だから,そのうち探して試してみなくては....と思ったりしている.(2010/5/8)

1枚rawデータから自動でHDRi(HDR画像)を作ってみた

以前書いたようにQtpfsgui 1.9.3ではFile下のプルダウンメニューには Load single raw fileに相当するコマンドは見当たらないのであるが,いきなり画像データをQtpfsguiに放り込もうとすると"New: Create a new HDR, by using one or more images."のウインドウが現れる.う~ん,これならやはり1枚画像から作ることが可能そうな雰囲気だ.

そこで勇んでrawデータをロードしようとするのだが,"ERROR: Failed Loading file: ファイル名"のエラーが出てどうしてもrawデータがロードできない.

困ってしまって改めてQtpfsgui Fail Loading...などで検索してみたら,sourceforgeさんのサイトで,Troubleshooting/Raw files in Microsoft Vistaの項で諸にこの問題に関する記事が掲載されていた.カナジーのOSはMicrosoft Windows 7であるが,Vistaで問題なら7でも問題である可能性は高かろう.
で,解決策として以下とある.

The problem can only be solved by downloading dcrawMS.exe from (http:www.)insflug.org/raw/Downloads/and substituting the new executable with the existing one.

それで早速このアドレスPukkita's Digital Darkroom Cornerさんのサイトから,[dcrawMS.exe] dcraw 8.94 built with Microsoft's compiler, should work fine on 2003 Server and Vista systems. をダウンロードし,Qtpfsguiのフォルダ内のdcraw.exeに差し替えてみた.しかし,今度は"ERROR: Cannot start dcraw on file: ファイル名"のエラーが出て,データをロードしてくれない.註書き通りVistaなら可能なのであろうが....

ならばと,またdcrawMS.exeを削除し,念のため[dcraw.exe] dcraw build version 9.02 Revision: 1.435 Date: 2010/06/11 07:03:46 for Windows systemsという元のプラグインの最新版をダウンロードし,Qtpfsguiのフォルダ内に入れてみた.しかしやはりローディングエラー("ERROR: Failed Loading file: xxxx")が起こることに変わりなかった.改めて眺めるとsee Windows Notesと記されたページを開いてみると,The Windows build should run fine on any msdos/windows 95, 98, 2000 or XP 32 Home/Pro system. とちゃんと書かれている.つまりVista(と7)はやはり範囲外で,動かないのであろう.残念!

ならば,とちょっと古いWindows XPノートがあったので,それにdcrawやdll一式を含めたQtpfsgui 1.9.3をインストール(単に一式1つのフォルダに入れてデスクトップに置いただけ)し,raw画像データをドロップしてみた.すると,何らローディングに問題はなく,事もなくHDRデータを完全自動で生成してくれた(単純に元データの補間程度であろうかと想像するが).HDRデータができた後は,それまでの3枚jpg画像からHDRデータを生成した場合と同様にトーンマッピングを施すことでHDRiが得られた.

中央高速とJR相模湖駅(通常の画像)

通常の画像

中央高速とJR相模湖駅(HDRi)

1枚rawデータから作ったHDRi(高尾山2010年後半6月11日(金)のページから)

上の写真はリコーGRD Ⅱで撮ったごく普通のjpg画像,下はjpg画像と同時記録したrawデータ(.DNG=アドビ社提唱標準だそうだ)をQtpfsgui 1.9.3に入れHDRデータを作り,トーンマッピングして得られたHDR画像だ.トーンマッピングのオペレータはfattalで,パラメータはalpha=0.1,beta=0.9,saturation=1,noisereduction=0.001とした.
noisereductionは小さな値でも効果大で,大きな数値を入れると解像度が急激に落ちるので控え目が無難なようだ.

中央高速高架橋裏側や樹木暗部のつぶれが解消され単独のrawデータでも結構効果が出せるようだ.また列車はJR相模湖駅には停車せず,高速で運行中の新宿行き特急あずさ(多分)であるが,1枚のrawデータならばこそのHDRiだ.この速度の動体では高速ブラケッティングでも多分被写体振れでうまくいかないであろうから.(←いやブラケッティングで被写体振れがあった方が動感が表現できて,ベターだよの声もありそう.←それとこれとは別問題だよ~とかわしてみる.)

結論:Windows XP上のQtpfsgui 1.9.3であれば1枚のrawデータからごく僅かな操作でHDRi生成可能で,なかなか楽しめると思う.SourceForgeさん,Pukkitaさん,関係者の皆さんありがとうございます.今後Windows 7でもdcrawが動くようになることも期待しております.(2010/6/12)

Windows 7(32bit版)でrawファイルロードができました!(以下2010/6/13追記)

何とかWindows 7でrawファイルがロードできないか引き続き考えていたら,Windows 7にはWindows XP互換モードがあることをようやく思い出した(←随分遅いね~).そこでまた勇んでQtpfsgui.exeの互換モードをWindows XP(Service pack 3)互換モードに設定してみた.でもrawファイルを入れようとすると相変わらず"ERROR: Failed Loading file: xxxx"となり,ガックリ!

でもめげずに何かないかな~?と他力本願頼みを続けていたらFlickrのページで,The Charliecamさんが以下のように言っているのが見つかった.

ERROR: Cannot start dcraw... Solved, somewhat.I'm using windows 7 (64 bit) and got Qtpfsgui 1.9.3 to work without the additional dll files using this: Qtpfsgui-windows-SETUP-v1.9.3.exe and then replacing the dcraw with [dcrawMS.exe]. The dcrawMS.exe had to be renamed "dcraw" no MS.exe. Now the only thing wrong is that the preview for each image when creating an new HDR doesn't work. I'm happy so far. Any idea on how to get the preview to work?

Charliecamさんのはwindows 7 (64 bit版)であるが,dcrawが動作するようになったと言っている.ならば32bit版でも動くようになるかも,と期待し,同氏の手順,dcrawを一旦dcrawMS.exeで置き換えて,しかる後dcrawMSをdcrawにリネームする,をやってみた.そしたらものの見事にrawファイルがロードされ,当然次のトーンマッピングまで通して動作するようになった.やった~,Charliecamさんありがとうございました!

なおCharliecamさんが言う通り,32bit版でもまたプレビューは動作しなかった.しかしカナジーの場合この小さなウインドウのプレビューは殆ど使うことがないので実際上差し障りはない.かくしてWindows 7で無事rawファイルが扱えるようになったし,良かったよかった♪(ここまで2010/6/13追記)


スポンサーリンク

スポンサーリンク