ロハでHDRパノラマ (21): RAW一発からのHDR・HDR合成まで

先日、S95のRAWは12 bit弱のダイナミックレンジがあることを確認した。RAW一発からHDR合成してみる。ワシはドMなので、すべてコマンドラインから作業している。

$ dcraw2hdrgen IMG_6983.CR2 > pfs.hdrgen
$ pfsinhdrgen pfs.hdrgen | pfshdrcalibrate -c none -r gamma | pfsclamp --rgb | pfsout pfs.hdr


色収差を補正してからHDRしたいムキは、

  • dcrawで 多階調TIFFファイルを得る
  • 色収差を補正
  • dcraw2hdrgen でHDR生成ファイルを作り、ファイル名を差し替え
  • pfsinhdrgen でHDR合成
$ dcraw -v -w -q 3 -4 -T -n 200 IMG_6983.CR2 
Loading Canon PowerShot S95 image from IMG_6983.CR2 ...
Wavelet denoising...
Scaling with darkness 127, saturation 4095, and
multipliers 1.887244 1.000000 1.938497 1.000000
AHD interpolation...
Converting to sRGB colorspace...
Writing data to IMG_6983.tiff ...

$ tca_correct -o bv IMG_6983.tiff 
image8 size:(3684x2760)
Number of images 3
Optimizing Variables
Strategy 1
Average (rms) distance between Controlpoints 
after 0 iteration(s):         0.988689000120851 units
Strategy 1
...snip...
Average (rms) distance between Controlpoints 
after 4 iteration(s):         0.576717587877057 units

-r 0.0000000:-0.0000097:0.0000000:1.0007124 -b 0.0000000:-0.0000138:0.0000000:0.9998986

$ fulla -r 0.0000000:-0.0000097:0:1.0007124 -b 0.0000000:-0.0000138:0.0000000:0.9998986 -o IMG_6983_Fulla.tiff IMG_6983.tiff

$ dcraw2hdrgen IMG_6983.CR2 | sed 's/.CR2/_Fulla.tiff/' > pfs.hdrgen

$ pfsinhdrgen pfs.hdrgen | pfshdrcalibrate -b 16 -c none -r gamma | pfsclamp --rgb | pfsout pfs.hdr

という手順で。pfshdrcalibrate にオプション '-b 16' をつけるのがコツだ*1。いずれにしても、出力されたpfs.hdrはQtpfsguiなどで確認できる。

関連する記事

HDRとは編集

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

*1:後で分かったが、'-r gamma'は間違いで、'-r linear'が正解。