OpenCV 2.4をCentOS6.7にインストールしたメモ
○問題
・CentOS6.7でyumでインストールできるOpenCVはなんか古い
Python パッケージにcv.soしかない(cv2.soがない)
・CentOS6.7でyumでインストールできるlibpngパッケージが
OpenCVをソースからコンパイルする際に要求されるパッケージとバージョンが合わない(古い)
・ついでにlibpngをソースからコンパイルしようとするとzlibが古いといわれる
(コメント: Ubuntuだとこんな苦労はない)
○対処
・まず最新版のzlibをソースからコンパイル
ダウンロードして展開してできたzlibディレクトリにて
> ./confiugre --prefix=/user/local/
> make
> make install
・libpngをソースからコンパイル
> ./configure --prefix=/usr/local/
> LD_LIBRARY_PATH="-I/usr/local/lib/" CPPFLAGS="-L/usr/local/include/" make
> make install
・OpenCVのソースをダウンロード
・OpenCVのtar.gz展開後のディレクトリで作業ディレクトリを作成
> mkdir release
その後
>cd release
・OpenCVのコンパイル
◇CMAKE
オプションがなくても良いけれど、指定しておいたほうが良いらしい。
CMAKEでは-D でCMakeList.txtの中身を調整しているよう。
<指定したオプションの例>
BUILD_EXAMPLES:exampleを用意する
CMAKE_BUILD_TYPE:DebugとReleaseがあるらしいのでRelease
CMAKE_INSTALL_PREFIX:インストールしたいディレクトリ
BUILD_NEW_PYTHON_SUPPORT:Pythonでimportできる形にライブラリを出力する(たぶん)
WITH_1394:参考にしたwebページにあったのでそのまま利用
WITH_PNG:PNGの読み書き機能を含めるかということ?デフォルトではON
ここでlibpngが悪さしたのでOFFにするとそれはそれでコンパイルが通った。
PNG_LIBRARY:ライブラリを直指定。文法があっているのかは不明
cmakeを実行
> cmake -D BUILD_EXAMPLES=ON -D CMAKE_BUILD_TYPE=RELEASE -D CMAKE_INSTALL_PREFIX=/hogehoge/ -D BUILD_NEW_PYTHON_SUPPORT=ON -D WITH_1394=OFF -D WITH_PNG=ON -D PNG_LIBRARY=/hogehoge/libpng.so ../
最後の../は一つ上のディレクトリにCMakeの実態があるよ、ということ。
(現在は一つ下のディレクトリreleaseの中)
cmakeの結果、zlibがデフォルトの/usr/lib64にあるものから指定したlibpngと同じディレクトリのもので上書きされちゃうかも!動作不安定になるかも!というWarningが出た。
けれど続行してみると
◇MAKE & MAKE INSATLL
> make
> make install
コンパイルは成功、(インストール先ディレクトリ)/lib/python2.6/site-packages 以下に
cv.soとcv2.soがあること確認
・後処理
OpenCVのcv.soやcv2.soがあるディレクトリにPYTHON_PATHを設定しておく
export PYTHONPATH=/hogehoge/lib/python2.6/site-packages:$PYTHONPATH
動作確認はまだ(2016.02.03)→動いた(2016.02.03)
(1行?)