OpenCVのインストールについて調べるとsystemのpythonに入れる方法がたくさんでてきて
pyenvで最新のpython試したいぜ!な人向けの解説って少ないですよね。
pythonインストール
pythonのインストール時にはlibpythonを作ってもらうために、enable-sharedオプションが必要です。ということで、以下のようにpythonを再インストールする必要があります。ONFIGURE_OPTS="--enable-shared" pyenv install 3.6.4
(注:readlineが足りねぇよ。等の警告がでたら素直に追加インストールしましょう。)
OpenCVダウンロード
以下URLからソースコードをダウンロードします。(gitで最新追い駆けたい人はgit cloneで)https://github.com/opencv/opencv/releases
https://github.com/opencv/opencv_contrib/releases
解答すると、opencv-3.4.1とopencv_contrib-3.4.1 ディレクトリができてるはずです。
依存パッケージインストール
OpenCVのサイトを参考に以下をインストール。sudo apt install build-essential
sudo apt install cmake git libgtk2.0-dev pkg-config libavcodec-dev libavformat-dev libswscale-dev
sudo apt install python-dev python-numpy libtbb2 libtbb-dev libjpeg-dev libpng-dev libtiff-dev libjasper-dev libdc1394-22-dev
インストール
pyenvのインストールディレクトリは、以下のようになってるはずなので「pyenv which python」等として調べてください。でとりあえずPROOT環境変数にいれています(書きやすくするため)
export PROOT=~/.pyenv/versions/3.6.4
buildディレクトリを作ってcmakeを走らせます。インストール先はPROOTします(root権限不要)。
注意事項としてはPYTHON3_LIBRARIESを設定する事と、PYTHON2やJAVAを無効にしておくこと。そうしないと、python3のみにインストールとする事で、すべてのライブラリをroot権限なしでインストールできるようになります。
cd opencv-3.4.1/
mkdir build
cd build
cmake -D CMAKE_BUILD_TYPE=RELEASE -D CMAKE_INSTALL_PREFIX=/usr/local -D OPENCV_EXTRA_MODULES_PATH=../../opencv_contrib-3.4.1/modules/ -D BUILD_opencv_python3=ON -D CMAKE_INSTALL_PREFIX=$PROOT -D PYTHON3_LIBRARIES=$PROOT/lib/libpython3.6m.so -D BUILD_opencv_python2=OFF -D BUILD_JAVA=OFF ..
注:cmakeをやり直す時はCMakeCache.txtを削除してからcmakeやりおします。
ここでPython3の項目に「NO」がないことを確認します。
あとはmakeを実行してインストール。
make -j
make install
インストールされてる事の確認は、pythonを起動してimport cv2をすればおk
あと、ROSを使ってる人等は環境変数PYTHONPATHが設定されてたりします。
そっちにpython2.7用のOpenCVが入ってるのでそっちが参照されてしまいます。
unset PYTHONPATHしましょう。
0 件のコメント:
コメントを投稿