階層グラフカットでステレオマッチング
作成環境
プログラム作成の環境は以下のようになっている。
使用したOS : ubuntu 12.04 LTS
コンパイラ : g++ バージョン 4.6
プログラミング言語 : C++
メモリ : 2GB
CPU : Intel® Xeon(R) CPU X5460 @ 3.16GHz × 4
ソースコードとコンパイル、実行方法
ソースコードは以下のファイル、フォルダから構成されている。
- programフォルダ、gazouフォルダ、kekkaフォルダ
以下programフォルダ内
- stereo_graph.cpp
- stereo.h
- ImgEx.cpp , ImgEx.h
- graph.cpp , graph.h
- maxflow.cpp
- block.h
gazouフォルダへは比較したい画像2種類をleft.png、right.pngとして置いておく。
以下のコマンドでコンパイルを行うことが可能である。
- g++ -c graph.cpp
- g++ -c ImgEx.cpp
- g++ -c maxflow.cpp
- g++ -o stereo_graph stereo_graph.cpp graph.cpp maxflow.cpp ImgEx.cpp `pkgconfig --cflags opencv` `pkg-config --libs opencv`
コンパイルが完了したら、./stereo_graph と入力することで実行を行うことができる。
実行すると
- please enter rabel value...
- please enter graph or alpha...
と出力されるので、上はラベルの初期値を1~256の範囲で入力する。
下はα拡張アルゴリズムと階層グラフカットのどちらを選択するかというものであり、graph を入力すると階層グラフカットを選択し、alphaと入力
するとα拡張アルゴリズムを選択する。
それらを入力したら計算が自動的に開始され、結果がkekkaフォルダへと出力される。
ライブラリのインストール方法
使用しているライブラリはopenCVのみとなっている。
インストール方法を
こちらを参照。