名前: 崎野真也
メールアドレス: sin_sakino@yahoo.co.jp
日付:1 / 14 / 2010


・プログラム内容
対応する2枚のステレオペア画像ファイルを読み込み、視差を画像ファイルにして出力するプログラムのソースコードです。
それぞれα拡張アルゴリズムと階層グラフカットアルゴリズムで結果を出力します。
ソースコードは次からダウンロードしてください。
アルゴリズム名ソースコード名
α拡張アルゴリズムstereo_alpha.cpp
階層グラフカットアルゴリズムstereo_hierarchical.cpp


・使い方
まず対応する2枚のステレオペア画像を用意します。
自分で撮影した画像でも良いのですが、とりあえずは以下のサイトからダウンロードするのが良いと思います。
1. http://cat.middlebury.edu/stereo/data.html
2. http://vision.middlebury.edu/stereo/data/

・ソースコードの使用方法
本ソースコードはライブラリとしてMAXFLOWとOpenCVを使用しています。
詳細は次の通り。
使用したライブラリ(OpenCV)のインストール方法
OpenCVについて:
windows環境であればsouceforge(http://sourceforge.net/project/showfiles.php?group_id=22870)よりダウンロードし、実行することでインストール可能。
MAXFLOWについて:
http://www.cs.ucl.ac.uk/staff/V.Kolmogorov/software.htmlからMAXFLOWというライブラリをダウンロードし、解凍したものを使用フォルダにコピーすることで使用可能。
これらをダウンロードし、OpenCVはインストールしてください。
MAXFLOWは解凍したら、同じフォルダにソースコードをコピーし、MAXFLOWの中身のファイルをリンクしてコンパイルしてください。


・実行方法
デフォルトでは、対象画像はmaxflow-v3.0.src/stereo/1.bmpとmaxflow-v3.0.src/stereo/2.bmpに設定してあります。
これ以外を使う場合は、main関数の入力ファイル名を変更してください。
また、出力はα拡張の場合はparallax_alpha.bmp、階層グラフカットの場合はparallax_hierarchical.bmpとして出力されます。
下に入力ファイル例と出力結果を載せます。この画像の最大視差は15として計算を行いました。
1
左目画像

2
右目画像

1
α拡張

2
階層グラフカット