軽い気持でOpenCV3.1.0をビルドしようとしたら 想像以上に苦労したのでそのまとめ。
依存モジュールのインストール
まずは依存モジュールをインストールする。
sudo apt-get update sudo apt-get upgrade sudo apt-get install \ build-essential \ cmake \ git \ pkg-config \ libjpeg8-dev \ libtiff5-dev \ libjasper-dev \ libpng12-dev \ libavcodec-dev \ libavformat-dev \ libswscale-dev \ libv4l-dev \ libatlas-base-dev \ libgtk2.0-dev \ gfortran
正直なところ、依存ライブラリはどれが必須でどれがオプションか不明。
python3.5のセットアップ
今回はvirtualenv等は利用せず直接インストール。 ただし、汎用的にはバージョンを切り替えられるようにした方が便利だと思う。
pythonビルド用のモジュールをインストールする。
sudo apt-get install python3-dev
numpyのためにpipをインストールする
wget https://bootstrap.pypa.io/get-pip.py sudo python3 get-pip.py
必要な計算パッケージをインストールする。
sudo pip install numpy
opencvソースコードの取得
opencvおよびopencv_contribのソースコードをgithubより取得する。 opencv_contribは拡張モジュールなので省略可能。
cd ~ git clone git://github.com/opencv/opencv cd opencv git checkout 3.1.0
cd ~ git clone git://github.com/opencv/opencv_contrib cd opencv_contrib git checkout 3.1.0
cmake & make
ビルドのためのcmakeを実行する。
mkdir ~/opencv/build cd ~/opencv/build cmake \ -D CMAKE_BUILD_TYPE=RELEASE \ -D CMAKE_INSTALL_PREFIX=/usr/local \ -D OPENCV_EXTRA_MODULES_PATH=~/opencv_contrib/modules \ -D BUILD_EXAMPLES=ON \ -D INSTALL_PYTHON_EXAMPLES=ON \ ..
cmakeの実行結果は以下。
configuration result for OpenCV 3.1.0
正常に完了したらビルドする。
make -j2
sudo make install
実際のインストールは
~/opencv/build/python3/cv2.cpython-35m-x86_64-linux-gnu.so
を
/usr/local/lib/python3.5/dist-packages/
にコピーするだけでもよい。
動作検証としてcv2モジュールがインポートできることを確認する。
$ python3 Python 3.5.1+ (default, Mar 30 2016, 22:46:26) [GCC 5.3.1 20160330] on linux Type "help", "copyright", "credits" or "license" for more information. >>> import cv2 >>> cv2.__version__ '3.1.0'
参考
結局一番参考になったのは以下のサイトでした。 www.pyimagesearch.com
手元にあるOpenCV本は以下だけどさすがに古そう。
- 作者: 奈良先端科学技術大学院大学 OpenCVプログラミングブック制作チーム
- 出版社/メーカー: 毎日コミュニケーションズ
- 発売日: 2007/09/22
- メディア: 単行本(ソフトカバー)
- 購入: 10人 クリック: 1,006回
- この商品を含むブログ (35件) を見る
OpenCV3関連はまだいい書籍は無いみたいなので公式ドキュメントが参考になりそう。
Python向けチュートリアル
OpenCV: OpenCV-Python Tutorials
モジュール一覧
OpenCV: OpenCV modules
APIリファレンス (3.0.0向け、3.1.0向けは未整備)
OpenCV API Reference — OpenCV 3.0.0-dev documentation
必要なモジュールやビルドオプションの精査は 実際にOpenCVを利用しながら別途確認したい。