Linuxでパノラマ画像結合をバッチ処理してみる

ある固定の複数のカメラから定期的に送信されてくる写真をパノラマ結合する。
環境はDebian Linux(lenny)。

カメラとしてはこんなものを用意。

P1020072

Logicool Qcam Pro 9000の中身2つ。ノーダルポイントとか考慮した方がいいのでしょうが、遠景だと問題にならないのでパス。画角はそれぞれ75度。

で、これが元画像。

image6_2cam image6_1cam

とりあえず前提条件として、カメラが固定で移動しないので、毎回同じ変換処理をかけるだけ。コントロールポイントの計算とかはしない。
で、変形の計算については、GUIが便利なWindowsのHuginを使ってあらかじめ計算しておきます。

Huginの使い方とかは
Hugin / Panorama Toolsによりパノラマ写真を作る
とかを参照。
諸々設定が完了したら、メニューの[ファイル]→[PTStitcher用スクリプトの書き出し]でパラメータ類をファイルに書き出します。

次はLinux側。
まずはPanoToolsをSourceForgeからダウンロード。バージョンはひとつ前のメジャーバージョンの12を使用。
$ wget http://downloads.sourceforge.net/sourceforge/panotools/libpano12-2.8.6.tar.gz?use_mirror=jaist -O libpano12-2.8.6.tar.gz
panotool13もあるけど、PTStitcherがlibpano12.soを所望で13だと使えないので12で。
どうやら13からはPTStitcherのオープンソース移植版のPTmenderというものを使うらしい。
一応、スクリプトとかオプションは互換とのこと。でもハマるのが怖いので今回は見送り。

ダウンロード後、展開。
$ tar xvzf libpano12-2.8.6.tar.gz
$ cd libpano12-2.8.6
libpng-devとかlibtiff-devが入ってないと文句言われるので、
$ sudo aptitude install libpng-dev libtiff-dev
しておく。
$ ./configure –prefix=/usr
$ make
$ sudo make install
これでPTStitcherを使う準備完了。

$ wget http://www.all-in-one.ee/~dersch/PanoTools.tar.gz
$ tar xvzf PanoTools.tar.gz
$ cd PTLinux/Helpers/
$ chmod +x PTStitcher
$ ./PTStitcher -h
Usage: PTStitcher [options] file1 file2 …

オプションとかはPTStitcher.txtに書いてある。
で、先ほどのスクリプトファイルを設置して
$ ./PTStitcher -o output.jpg sample.pto
とかやれば出力完了!

image6_2cam-image6_1cam

バッチ処理部分は適当に…


タグ: ,

新しく会社作りました!

コメントをどうぞ