UbuntuにOpenCV2.3を導入

画像処理をするためにOpenCVのライブラリを使いたいので今回そのインストールとテストをしたこを記録。
OpenCVのバージョンは2.3,OSはUbuntu11.10でお送りします。

1, インストール: OpenCV2.3
2, 必要なパッケージ: cmake cmake-qt-gui subversion libeigen3-dev libeigen3-doc libtbb-dev libqt4-dev libunicap2-dev libunicapgtk2-dev ffmpeg

インストール手順は、必要なパッケージのインストール->Makefile作成->インストール となります。
Makefileはcmake-guiをつかって作成します。

必要なパッケージのインストールです。

sudo apt-get install cmake cmake-qt-gui subversion libeigen3-dev libeigen3-doc libtbb-dev libqt4-dev libunicap2-dev libunicapgtk2-dev ffmpeg

先ずはOpenCV2.3をダウンロードします。ダウンロードはこちらです。
任意の場所に解凍して、解凍された階層(以降この階層をOPEN_DIRとする、)に移動し、コマンドラインにて cmake-gui 'pwd' を入力します。

すると次のような画面が表示されます。

ソースコードの参照先を先ほど解凍したOPEN_DIR内に(CMakeLists.txtがあるディレクトリを指定)
Makefileの作成場所は特に指定する必要がなければソースコードと同様の階層で良いと思います。
そのあと、Configureを実行します。Unix MakeFilesを選択し、ラジオボックスには
Use default native compilersをチェックしてFinishを実行。


チェックボックスの一覧にWITH_FFMPEGとWITH_UNICAPにチェックを入れてからGenerateボタンを押します。すると、Makefileが作成されるので、コマンドラインにもどり、 make , make install を実行してインストールを行います。makeには結構な時間が掛かります。また、途中でmakeに失敗した場合、エラーメッセージにあわせて足りないパッケージをインストールして進めてみてください。

また、デフォルトでは/usr/local/lib内にあるライブラリは共有ライブラリとして認識されていないので/etc/ld.so.confを編集あるいわ/etc/ld.so.conf.d/内にconfファイルを作成して認識するように設定します。編集内容は次の1行を追加するだけです。

/urs/local/lib

別の方法として、.bashrcあるいは.bash_profileに export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/usr/local/lib
とするやり方もあります。


次にインストール後、ダウンロードしたOpenCV内にあるサンプルファイルをコンパイルして実行してみます。場所は、
OPENCV_DIR/sample/ にあります。適当にひっぱてきて実行してみます。

g++ -o my_example matcher_simple.cpp -lopencv_core -lopencv_imgproc -lopencv_calib3d -lopencv_video -lopencv_features2d -lopencv_ml -lopencv_highgui -lopencv_objdetect -lopencv_contrib -lopencv_legacy

私は実行テストとして matcher_simple.cppを選びました。
すると、g++を実行した場所に my_example(第一引数の名前)の実行ファイルが生成されるので、実行します。

./my_example a.png b.png

matcher_simple.cppは引数が二つ必要で、両方とも画像のファイルを指定します(詳細はソースコードを見てください)。
いかが実行結果になります。


参考サイト

http://d.hatena.ne.jp/shirayuu/20111023/1319326630
http://playwithopencv.blogspot.com/2011/06/ubuntu1104-64opencv22.html