HDRの原理という記事でもリンクして紹介していた、「鉄道のある風景 - HDR合成の原理と実践例」というページが失われたようなので、代わりに同じようなことをしてみようと思う。
いくつかあるHDRの技法のうちの、露出合成というもののリクツと実践ということでやってみる。 →追記:リクツはこの通りなんですが、フォトショで露出合成をする場合は、こちらの記事で紹介しているプラグインがちょー便利です(GIMPの場合は、下のほうで紹介しているスクリプトを使ってください)。→さらに追記:多重露出との違いの記事なんぞも読んでいただくと理解が深まるかも。
素材として、この3枚の写真を使う。
ごくフツーの±1のオートブラケットで、手持ち撮影のため構図がズレているのだが、Fusionというソフトで位置合わせをすませておいた。
いちおう、真ん中の写真が適正露出ということにしておく(カメラがそう決めた)。
しかしながら、適正の写真だと雲が飛びぎみであり、アンダーの写真のほうが雲のディテールが出ている。
いっぽう、ビルの暗い部分に関しては、オーバーの写真のほうが明るいのでわかりやすい(適正露出のやつでいいじゃないかとはいわないでほしい。説明にならないので)。
そこで、それぞれからいいところを抜き出して切り張り合成をしてしまえ、というのが露出合成なのだが、実際にやってみる。
まずアンダーの写真をフォトショで開き、複写したレイヤーの画像を2諧調化する。
てきとーにしきい値を調節する(いや、まあ、てきとーでは困るのだが)。
諧調の反転。
レイヤーをスクリーンモードで統合する。
それをコピーして、適正露出の上に重ね、真っ白のところを選択ツールで選び、そこをカット(消去)する(実際には適正の上にアンダーを重ね、それを複製して2諧調化、白いところだけを選択してアンダーのやつからその範囲をコピペして新レイヤーを作ったほうがいい。反転とか消去とかする必要がないからやりやすい……意味わかるかなぁ)。
オーバーの写真も同様にして2階調化(しきい値は変えてるよ)。
反転……はしないで、そのままスクリーンモードで統合。
それをコピペして適正露出の写真の上に重ね、選択ツールで真っ白のところを選んでカット(消去)する。
アンダーから持ってきた明るいところと、オーバーから持ってきた暗いところが重なるわけだが、それらだけを表示させるとこうなる。
ここで抜けているところに、適正露出の画像がはまり込むわけだ。
露出合成というのは切り張り合成である、というリクツがよくわかると思う。やってることは、テレビのカタログの「画面ははめ込み合成です」と同じ。
できたのがこの写真。
以上が露出合成の原理である「いいとこ取りの合成(切り張り合成)」だ。
が、リクツはリクツであり、できたものを見てもらえばわかるように、合成した部分がはっきりとわかってしまう。
そういう目立つ部分は、画像の統合前に消しゴムツールで消しておく、というのもひとつの方法だし、エッジ(境界)をぼかしておくというのもアリだろう。
さらに、合成する割合を変えるというのも方法のひとつで、これはアンダーとオーバーから持ってきた画像を、不透明度50パーセントで重ねて統合したものだ(上は50パーセントにしたようす)。
効果は弱くなるが、これぐらいだと重ねた部分のエッジがあまり目立たない(境界のぼかしも併用するともっといいのだけど、ここではやってない)。
HDR合成ソフトで行なう露出合成も、単純な切り張り合成ではなく、混ぜる割合を調整して重ねているはずだ(エッジのぼかしもやってるはず)。
そのため、できた画像には動体がゴーストとなって残ってしまうし、原理的にゴースト除去というのができない(明るさを調節し、動体がきちんと重なるように合成した素材を作っておく、という手法もなくはない)。
ただし、ゴーストがある部分の重ね合わせをやめ、どれか1枚の画像を100%使うようにしてもゴーストは避けられる。この場合、周囲との明るさをレベル調整などでうまく合わせなくてはならないが、これがHDR合成におけるゴースト除去のリクツだ(なにせ32ビットHDRファイルの合成も、32ビットのダイナミックレンジの中で露出合成をしている、と考えることもできるし。ただ、いわゆるHDR画像というのは、その32ビット画像をトーンマッピングしつつ8ビットに戻しているというのが大きな特徴)。
いまのところこういうゴースト除去を自動でやってくれる露出合成プログラムはないと思う(※)が、レタッチソフトを使う手作業でならやってできなくはないだろう。自動で作ったものを、あとで修整するということもできる。オリジナルに手を加えないで切り張りをするのが露出合成だと定義してみれば、明るさを変えちゃうのは反則っぽいけど。
※ダイナミックフォトHDRが露出合成でもゴースト除去をできるらしいが、もうアンインストールしてしまったので確かめられない(確かめるのがめんどい)。→さらに追記:Photomatix Proでも、モードによっては露出合成でもゴースト除去ができた。あまりやらないから知らなかった……。
ま、素材の枚数が多くなるとたいへんだが、3枚ぐらいならレタッチソフト(ここでは古いフォトショのLE)でやってやれなくはないというわけ(いちいち切り張りせずとも、レイヤーマスクを使うという方法もあるし、意図的に「ここは明るいものを残したい」みたいなこともできるだろう)。とくに、ここでやったように、空だけ抜き合わせで合成するなんてのは、比較的簡単だ。こんなのは露出合成とすら呼べないかもしれない。
仕上がりがいいかどうかは別にして、これが露出合成のリクツ。
いくらダイナミックレンジが広くとも、「1枚の画像」であるRAW、そして32ビットのhdrファイルとかtifファイルとかからは露出合成ができない、ということもわかるだろう。露出合成には必ず複数枚の素材が必要なのだ(Fusionは謎の技術で1枚から擬似的にやってしまう。ようするに明るさごとに分解したデータの強度を調節しているのではないかと思うのだが……フォトショのハイライト/シャドウの独立コントロールのような感じだろうか。あとHDR Darkroomも1枚を露出合成できるようだ。ようするにトーンマッピング=細部強調をしてないよ、という意味での露出合成なんだろう)。
しかし、いうまでもなく、RAWを複数枚のJPGに現像すれば、それを露出合成することはできる。こうすれば、「明るく現像しようか」「暗いほうがいいかな」「でもそうすると、ここが出ない」などと悩むことなく、RAWのデータすべてをJPG上に表現できる(それが気に入るかどうかはハナシが別)。
おまけとして、平均合成(加算平均)の例も出しておく。
これは3枚の画像を同じ割合で混ぜたものだ。
これは、HDRソフトにおいては露出合成の中のひとつの方法という位置づけになってるが、切り張りではないという点で、本当は根本的に違う(しかし、32ビットhdrファイルを合成するのではないので、HDR合成か露出合成かといわれると露出合成だろう。広い意味ではどちらもHDRだが)。
やり方は、背景の上に重ねたものを不透明度50パーセントにし、その上に重ねたものを33.33333……というのはできないので、33または34パーセントで統合するだけ(もう1枚重ねるとしたら不透明度は25パーセントになる。さらにもう1枚なら20パーセントだ。いちばん上のレイヤーを調整するとき、100を枚数で割った数の不透明度にすればいい。ちょー精密にしたいのなら、50パーセントずつ混ぜた画像2枚を50パーセントずつ混ぜる……というようにすれば、小数点以下の割合が不正確になることを防げる。見た目は同じだと思うが)。
Photomatix Proではフュージョンのアベレージというので自動でできる(評価版でもロゴは入らない)。Photomatix Basicでもできるが、Proより位置合わせが弱い。ズレのない画像ならBasicのほうが早い。
リクツからいって、合成するものの同じ部分がすべて白とか黒になってなければ、できた画像には白や黒はなくなる。完全にすっ飛んでいるところやつぶれているところはなくなる(3つとも100なら平均しても100だが、どれかひとつでも95というのがあれば、平均すると98になる、という感じ)。
これもゴースト除去はできないが、重ねる枚数が多ければ多いほど、動体は薄くなる(または薄くなった動体が多重露出のように重なり合ってぐちゃぐちゃになる)。
同じ露出の画像を合成すれば、調子は変わらないままノイズが平均されて目立たなくなる。いわゆるコンポジットという方法だ(こちらの記事でやってる)。
加算平均ではない露出合成でも、同様なリクツでノイズが減ることがある。上で説明したように、半透明にして重ねているからだ(ノイズのゴーストが出ていると考えることもできる)。ノイズが増えることがあるというHDR合成とは逆の副作用があるといえるかもしれない。
素材のうちのどれかの割合を多くした(あるいは少なくした)場合は、単純な平均ではなく荷重平均という。ふつーの露出合成は、場所(明るさ)によって荷重を変えたそれをやってる、といえる。
比較として、Photomatix Basicでアンダーとオーバーの2枚を露出合成したものも出しておく。コンバインのハイライト&シャドウというモードでできる(Proでもできる)。
簡単なわりに、そこそこいい(あまり露出差のあるものは低コントラストになりすぎて、うまくいかない。せいぜいプラマイ1のブラケット写真を重ねる程度だろう。上に書いた、RAWを明暗に現像したものを合成するのにオススメ)。
それを調整したもの。
ま、あんまりおもしろくないね。
おしまい。
追記
フリーのレタッチソフトGIMPには、露出合成をするexposure blendというプラグイン(スクリプト)がある、
それを使ってみた。→追記:このスクリプトは3枚しか合成できませんが、5枚合成できるやつなどもあるようです。
上でやったように、適正露出の画像の上に、暗いものと明るいものをレイヤーマスクを使って合成する手順を自動化したものだと思うが、ダイアログにあるBlend Mask Blur Radiusというのが、マスクのぼかし量(ぼけの半径)だと思う。
もちろんブレンドする量も、100パーセントではなく半透明化している(よって、動体はゴーストになる)。
レイヤーの表示を見ると、レイヤーマスクが適用されているのがわかる。
これができたもの(パラメータはデフォルトのまま)。
GIMPでもHDR合成ができると言われることがあるが、ここでみたように、GIMPのHDR合成は露出合成である、というわけだ(簡単でやりやすいよ)。
なお、明るい写真と暗い写真の2枚しかない場合は、あらかじめそれらを平均合成(加算平均)で混ぜ、中間の明るさのを作っておけば、このスクリプトで露出合成ができる。
加算平均とかむずかしい言葉を使っているけどなんのことはない、1枚の上にもう1枚を重ね、レイヤーモード標準の50パーセントで統合すればいいだけだ。
まあ、あまり違わないとは思うが、暗い写真の明るいところを持ってくる、というような露出合成と平均合成とはびみょーに違う(実際にやって確認済み)。
ついでに文句をつけておくと、HDRっぽい画像を作れるプラグインだとかいってこのスクリプトを紹介してるところもあるけど、ぜんぜんそんなことないから(作例を見ればわかるでそ。一般の人の考えるいわゆるHDRって、こんなナチュラルなものじゃないと思うし)。
んで、GIMPにはトーンマッピングの機能はないが、1枚画像をHDR風(トーンマッピングしたような感じ……にはあまりならないけど)にするスクリプトもある(こちらやこちらを参照)。
その「1枚の画像」というのを、こうして露出合成で作っておけば、擬似HDR(フェイクHDR)でもなんでもなく、正真正銘のHDRということになろう。
なお、Adaptive Contrast Enhancementというフィルター(なぜかフィルタではなくレイヤーのところに入ってる ← と思ったら、知らないうちになくなって、ちゃんとフィルターのところに入っていた)でも、細部強調処理はできる。
けっこう荒れるのでノイズ除去は必須になると思うけど、縮小使用が前提なら使えなくもない。
下がやってみたもの(パラメータはデフォルトのまま。ノイズ除去もしてない)。
でもまあ、後処理としてローカルのコントラスト調整をするなら、違うソフトのほうがいい。いわゆる1枚写真をHDR風にするというソフトも使える(1枚写真しかいじれない偽HDRソフトもあるけど、それに入れる写真を、こうして露出合成しておくといい)。
どういうふうに作りたいかによって、よしあしはあるけど(露出合成なんぞしなくとも、単にトーンカーブで調子をいじってやればいいものだってあるだろう。私もこういう合成ばかりやってるので反省しなくては)。
※GIMPでの露出合成やフェイクHDRのスクリプトに関しては、こちらの記事で比較検討しているので参照してほしい。
※
上でやったAdaptive Contrast Enhancementで処理したものが、あまりにおもしろくないので、名誉挽回ということで少しいじってみた。
まずはイテレイションとディテールサイズを最大に設定。
こちらは、合成したものを複製してレティネックス(レベルは「低い」)で処理、それをオリジナルにオーバーレイで統合。
それをAdaptive Contrast Enhancement(パラメータは同じ)で処理。ちょっとハロ(というより「縁取り」レベルで中途半端だな)が目立つがしょうがない。
ま、とりあえず「これは変わったな」と思えるレベルにはなった。
HDR合成してトーンマッピングしたといっても信じる人がいるだろう(露出合成+ローカルのコントラスト強調だけなのに)。
ノイズがひどいのはご愛嬌(基本的にこれだけはどうにもならない。Adaptive Contrast Enhancementのスムーシングを大きくすればノイズは減るが、効果も弱まる)。
※
「HDR フリーソフト」とかで検索するとうちのブログと同じくトップページに出てくるヤフー知恵遅れのQ&Aで、「画像を非常に細かく解析して」合成するとかテキトーなことを回答してる人がいるけど、別にそんなことないから。
基本はここでやったのとほぼ同じで、明るさで区切って(?)切り貼りしてるだけ。
「解析」といえるようなことは、ゴースト除去のときにしてるだけじゃないかしらん。