ロハでHDRパノラマ (11): パノラマ作成時のHDR合成

以前はパノラマ作成時も、そうでないときも、HDRの合成はスクリプト一発で済ませていた。スクリプトの吐き出すGIMPファイルからTIFFに出力して、Huginで合成していた。これでは、あまりよろしく無いことが分かってきた。

GIMP (Ver. 2.6)は8 bit整数の階調しか取り扱えないのだ。GIMPの出力するTIFでもJPGでも8 bitだ。普通なら、8 bitでも問題ないのだが、パノラマ合成するときはちょっとマズい。繋ぎ合わせる時に露光調整してるんだが、若干不自然な仕上がりになる事がある。特に日中に360°ぐるっと撮影したときなど。極端に明るさが違うと、露光を調整する時に階調の粗が見える。

じゃ、どうしたら良いか。問題は、

  • スクリプトの画像の吐き出し部分を16 bit階調とする
  • 16 bit階調画像の調整、レタッチ


のふたつだ。

GIMPは、Ver. 3で16 bit階調をサポートする予定としている。GEGL (Generic Graphics Library)という画像エンジンを統合するという事らしい。現状のVer. 2.6でも一部GEGLを使用することができるが、ワシの環境では上に書いた処理はできなかった。他に、FOSSで16 bit階調を扱えるものを挙げるなら、


がある。ubuntuの公式リポジトリにはcinepaintは無い様子。時間がある時にビルドしてみるが、取りあえずパス。最近は安定してきたというkritaで階調などの調整をおこなう事にした。kritaで編集できる16 bit階調TIFFファイルを吐き出すように、スクリプトを改造する。

出力ファイル名を定義しているところを、

# HDRFILE="$HDRFILEPREFIX$NUMBER.xcf"
HDRFILE="$HDRFILEPREFIX$NUMBER.TIFF"


スクリプトGIMPファイルへの出力を行っている部分をコメントアウトし、次の様にする。

composite $DIR/hdr_mantiuk06.tif $DIR/enfuse.tif -compose pegtop_light -depth 16 $DIR/tmp.tif
composite $DIR/hdr_fattal02.tif $DIR/tmp.tif -compose pegtop_light -depth 16 $DIR/$HDRFILE


これでお終い。-compose の後のオペレータの種類、元々はoverlayとsoftlightだったが、GIMPではoverlayとsoftlightが同一の実装になっているらしいし、pegtop_lightと仕上がりあまり変わらないし、pegtop_lightの方が速いので、こっちを使うことにした。仕上がったTIFFファイルは階調が16 bit整数の画像となる。これをHuginで合成してパノラマにしてTIFFへ出力、最終的にkritaで調整してJPGに出力したのが、昨日の写真だ。繋ぎ目に不自然さはなく、HSV調整の"ノリ"も良い。

こうも違うと、以前にパノラマ合成した写真もやり直したくなってきた。TIFF出力まではスクリプトでポン、なので、以前と同じファイル名でTIFFファイルを置き換えるか、Huginの保存ファイル (.pto)をチョロッと編集してファイル名を置換してやれば良い。簡単だ、また今度。

関連する記事

HDRとは編集

  • High Dynamic Range、明度差を広く取った映像のこと。本来的な意味ではコンピュータ画面上で表示可能な8bitの色深度を越えた画像ということになるが、実際には8bitの中で明度を調整した画像を指すことが多い。 通常、映像は明るいところと暗いところを同時に.. 続きを読む
  • このキーワードを含むブログを見る