OpenCVをapt-getなどでインストールした場合Verが古かったりする。
一方自前でビルドしてグローバルなディレクトリにインストールすると環境が混ざってしまって不整合が起きたりする。
python環境をセットアップしたvirtualenvについでにOpenCVをセットアップする方法。
activate実行でOpenCVも切り替えできるので便利かも。
以下ではpython3と、OpenCV3.2.0を使用するものとする。
以下でvirtualenvをセットアップしその環境に入る。
virtualenv ~/myenv_python3 --python=/usr/bin/python3.5
source /home/natsushi/myenv_python3/bin/activate
OpenCVのコードのzipを取得し以下実行。
unzip 3.2.0.zip
cd opencv-3.2.0
mkdir build
cd build
cmake -D CMAKE_BUILD_TYPE=Release -D CMAKE_INSTALL_PREFIX=$VIRTUAL_ENV/usr/local -D PYTHON3_EXECUTABLE=$VIRTUAL_ENV/bin/python -D BUILD_opencv_python3=ON ..
(ここで念のためCMakeVars.txtの内容を確認しておく)
make -j7
make install
~/myenv_python3/bin/activateの一番下あたりに以下を追加。
export PYTHONPATH="$VIRTUAL_ENV/usr/local/lib/python3.5/site-packages:$PYTHONPATH"
export PKG_CONFIG_PATH="$VIRTUAL_ENV/usr/local/lib/pkgconfig/"
export LD_LIBRARY_PATH="$VIRTUAL_ENV/usr/local/lib/:$LD_LIBRARY_PATH"
virtualenv環境に入り直す。
deactivate
source /home/natsushi/myenv_python3/bin/activate
適当にテスト。
#coding: utf-8
import cv2
img = cv2.imread('test.jpg', cv2.IMREAD_GRAYSCALE)
cv2.imshow('image', img)
cv2.waitKey(0)
cv2.destroyAllWindows()
#実行しエラーがでなければOK。
#include
#include
#include
using namespace std;
using namespace cv;
int main(int argc, char const *argv[]) {
Mat image = imread(argv[1]);
return 0;
}
//以下でビルドして実行してみる。
//g++ -g `pkg-config --cflags opencv` -o face_kirinuki_linux test.c `pkg-config --libs opencv`
以降使う際にはactivateすればOK。
うまくいかないようなら、pythonでモジュールを探すディレクトリのリストを以下で表示するなどして。
import sys
print(sys.path)