Raspberry Pi+pyenvな環境にOpenCVをインストールする


以下の環境にOpenCVをインストールした際、CMakeにはまったので記録として残しておきます。

  • RaspberryPi本体はRaspberryPi 3 Model B
  • OSは2017-11-29-raspbian-stretch-lite
  • Pythonはpyenv管理下の3.6.4
  • OpenCVは3.4.1

はまりポイント

参考サイト「Optimizing OpenCV on the Raspberry Pi」を参考にしてもPython 3向けのビルドを行ってくれない。
(解決方法としては参考サイト2番目に記載されたcmakeのオプション群でした)

参考にしたサイト

依存パッケージのインストール

詳細は参考にしたサイト「Optimizing OpenCV on the Raspberry Pi」を参照してください。

CMakeのオプション例

ポイントはLIBRARYやINCLUDEの指定のようです。
これでpyenvのPython 3.6.4向けにOpenCVをビルドすることができました。

cmake -D CMAKE_BUILD_TYPE=RELEASE \
-D CMAKE_INSTALL_PREFIX=~/.pyenv/versions/3.6.4 \
-D OPENCV_EXTRA_MODULES_PATH=~/opencv_contrib-3.4.1/modules \ \
-D ENABLE_NEON=ON \
-D ENABLE_VFPV3=ON \
-D INSTALL_PYTHON_EXAMPLES=ON \
-D BUILD_EXAMPLES=OFF \
-D INSTALL_C_EXAMPLES=OFF \
-D BUILD_NEW_PYTHON_SUPPORT=ON \
-D BUILD_opencv_python3=ON \
-D BUILD_opencv_legacy=OFF \
-D PYTHON_EXECUTABLE=~/.pyenv/versions/3.6.4/bin/python \
-D PYTHON_LIBRARY=~/.pyenv/versions/3.6.4/lib/libpython3.6m.a \
-D PYTHON_INCLUDE_DIR=~/.pyenv/versions/3.6.4/include/python3.6m \
-D PYTHON_INCLUDE_DIRS=~/.pyenv/versions/3.6.4/include/python3.6m \
-D PYTHON_INCLUDE_DIRS2=~/.pyenv/versions/3.6.4/include/python3.6m \
-D INCLUDE_DIRS=~/.pyenv/versions/3.6.4/include/python3.6m \
-D INCLUDE_DIRS2=~/.pyenv/versions/3.6.4/include/python3.6m \
-D PYTHON_PACKAGES_PATH=~/.pyenv/versions/3.6.4/lib/python3.6/site-packages \
-D PYTHON_NUMPY_INCLUDE_DIR=~/.pyenv/versions/3.6.4/lib/python3.6/site-packages/numpy/core/include ..