LoginSignup
17

More than 3 years have passed since last update.

OpenCV 4.1.0をWindowsでビルドする手順

Posted at

OpenCV 4.1.0をWindowsでビルドする手順です。
CUDA 10.0、VTK 8.2、Qt5 を有効にして、Python 3からも利用できるようにします。

ここでは必要なソフトのインストール方法などは省略して、OpenCVをビルドする手順に焦点を当てました。
もう少し細かい説明は、こちらのBlogに書いているので必要に応じて参照してください。

OpenCV 4.1.0のビルド環境

以下の環境でOpenCV 4.1.0をビルドしています。
なお、Visual Studio 2019を使うとビルドに失敗します。

  • Microsoft Windows 10 Pro
  • Microsoft Visual Studio Community 2017 Version15.9.11
  • Git for Windows(gitコマンドが利用できれば良い)
  • CMake 3.1.4
  • Python 3.7.3 for Windows
  • CUDA 10.0
  • VTK 8.2.0
  • Qt 5.12.2

PATHの設定

CUDA、VTK、Qtなどは事前にパスを通しておきます。

  • CUDA 10
    • C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v10.0\bin
    • C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v10.0\libnvvp
    • C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v10.0\extras\CUPTI\libx64
  • Git for Windows
    • C:\Program Files\Git\cmd
  • Qt5
    • C:\Qt\Qt5.12.2\5.12.2\msvc2017_64\bin
  • VTK
    • C:\lib\VTK\bin
  • Python 3.7.3
    • C:\Python37\Scripts\
    • C:\Python37\

ビルド環境の準備

Python用にビルドするためにnumpyが必要になるので、ビルド用のPython仮想環境を作成します。

# 仮想環境の作成
python -m venv C:\venvs\build_opencv410
C:\venvs\build_opencv410\Scripts\activate

# numpyの導入
pip install numpy

OpenCVのビルド

opencvとopencv_contribのソースコードを取得します。

# 作業用のフォルダ作成
mkdir c:\build\opencv410
cd /d c:\build\opencv410

# OpenCVのソース取得
git clone https://github.com/opencv/opencv.git
cd opencv
git checkout 4.1.0
cd ..

# OepnCV Contribのソース取得
# OpenCVのビルドにはcontribのopencv_cudevが必須
git clone https://github.com/opencv/opencv_contrib.git
cd opencv_contrib
git checkout 4.1.0
cd ..

CMakeを起動して以下のように設定を行います。
環境によって設定項目が異なりますが、ポイントになる部分は赤矢印を付けています。

  • OPENCV_EXTRA_MODULES_PATHにopencv_contribのmodulesフォルダを指定
  • PYTHON3_NUMPY_INCLUDE_DIRSにnumpyのincludeフォルダを指定
  • PYTHON3_PACKAGES_PATHにPythonのsite-packagesフォルダを指定
  • CMAKE_INSTALL_PREFIXにOpenCVをインストールするフォルダを指定
  • CPUやCUDAのアーキテクチャは利用している環境に合わせて設定
  • WITH_CUDA,WITH_VTK,WITH_QTなどを必要に応じて選択
  • 他の設定は以下画像を参照

01_build-opencv-410.png

設定が完了したらCMakeのGenerateでコードを生成し、Open ProjectでVisual Studio 2017のソリューションファイルを開きます。
Visual Studio 2017のバッチビルドで、INSTALLをビルドすれば完了です。

OpenCVの各種ファイルはCMAKE_INSTALL_PREFIXで指定したフォルダに、Python3用のモジュールはPYTHON3_PACKAGES_PATHで指定したフォルダ配下にcv2フォルダが作成されて格納されます。

OpenCVをどこからでも利用できるようにする場合、環境変数PATHにCMAKE_INSTALL_PREFIX配下に作成されたbinフォルダ(C:\lib\OpenCV410\x64\vc15\binなど)を追加してください。

Pythonから利用する方法

Python環境にビルドしたOpenCVを導入するには、ビルド時に作成されたpython_loaderフォルダのsetup.pyを利用します。
OpenCVを導入したいPythonの仮想環境をアクティブにしてsetup.py installとすれば導入できます。

# 仮想環境を作成してアクティブ化
python -m venv C:\venvs\cv410
C:\venvs\cv410\Scripts\activate.bat

# OpenCVの導入
python C:\build\opencv410\opencv\build\python_loader\setup.py install

pip listでopencvが導入されたことが確認できます。

pip list
Package    Version
---------- -------
numpy      1.16.2
opencv     4.1.0
pip        19.0.3
setuptools 40.8.0

PythonにOpenCVを導入しても、必要なファイル(OpenCVのdllファイルや、依存しているCUDA,VTK,Qtなどのファイル)が参照できない状態だとOpenCVを使う時に「DLL load failed: 指定されたモジュールが見つかりません」のようなエラーが発生します。

以下コマンドで、OpenCVを正しくロードできるか試してください。
もしDLL load failedのエラーが発生するようならPATHが正しく設定されているか確認してください。

# OpenCVのバージョン表示
# 正しくインストールできていれば 4.1.0 と表示される
python -c "import cv2; print(cv2.__version__)"

# OpenCVのビルド情報表示
# 正しくインストールしていればOpenCVのビルド情報が詳細に表示される
python -c "import cv2; print(cv2.getBuildInformation())"

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
17