2015年10月8日木曜日

魚眼ボディキャップレンズでHDRブラケット撮影合成、rectilinear変換半自動スクリプト

はじめに

魚眼ボディキャップレンズでHDRブラケット撮影して、enfuse合成、rectilinearに変換すると、臨場感を思い出す情報量の多い画像が出来上がる。
しかし、手作業でのenfuse作業は面倒。

そこで、半自動化スクリプトを作成する。

手順

1.魚眼ボディキャップレンズでHDRブラケット撮影。±3EV、3枚、手持ち。
2.calibrate_lens_guiでレンズ補正データ作成。


###以下スクリプト、適当なシェルスクリプト名を付けて端末で実行###
No_A=9011897 #最初のファイル番号
LAST_No=9011908 #最後のファイル番号

until expr $No_A  = `expr $LAST_No \+ 1`

do

No_B=`expr $No_A \+ 1`

No_C=`expr $No_A \+ 2`
var_D=/home/poi/ピクチャ/2015/09/01/P #画像へのパス

pto_gen -p 3 -f 110 --distortion=/home/poi/ピクチャ/olympus_Fish_abc.ini -o pano.pto  \ #レンズ補正デーへのパス
$var_D$No_A.JPG \ #画像ファイル番号を変数代入
$var_D$No_B.JPG \
$var_D$No_C.JPG
cpfind --prealigned -o cp_out.pto pano.pto #コントロールポイントの作成
pto_var --opt y,p,r cp_out.pto #修正パラメーターの指定
autooptimiser  -p -s -o opt_out.pto cp_out_var.pto #画像の位置合わせ
pano_modify -p 0 --fov=AUTO --canvas=30% --crop=AUTO -o pj$No_A.pto opt_out.pto #投影方式をrectilinear、画像サイズ、自動切り抜きでプロジェクトファイル書き出し。プロジェクト名に画像番号を入れる。
No_A=`expr $No_A \+ 3`
done
###スクリプトここまで###


3.書き出したプロジェクトファイルをhuginで読み込む。(スクリプトによる前段の自動処理で、位置合わせからクロップまで済んでいる。)
4.enfuseを指定して書き出す。
5.enfuse画像はコントラストが甘いのでGimpで修正。
6.separate Luminanceフィルターをかける。Luminanceレイヤーに自動ホワイトバランス処理。

0EV

-3EV

+3EV
enfused rectilinear
separate luminance filter
完成