Pynote

Python、機械学習、画像処理について

OpenCV - Windows で OpenCV を導入する方法 (2018年10月版)

手順

1. ソースコードをダウンロードする。

OpenCV 3.4.3 のソースコード opencv-3.4.3.zip 及び OpenCV's extra modules 3.4.3 のソースコード opencv_contrib-3.4.3.zip をダウンロードし、解凍する。

E:\OpenCV\3.4.3 というフォルダを作成し、以下のように解凍したディレクトリを配置した。
場所はどこでもよいので、違う場所に置いた場合は以下の説明のパスは適宜読み替える。

E:
└─OpenCV
    └─3.4.3
        ├─opencv_contrib-3.4.3
        └─opencv-3.4.3


2. CMake GUI でプロジェクトファイルを生成する。

CMake GUI を起動し、以下のように設定し、「Configure」ボタンをクリックする。

  • Where is the source code: E:\OpenCV\3.4.3\opencv-3.4.3
  • Where to build the binaries: E:\OpenCV\3.4.3\build

コンパイラを選択し、「Finish」をクリックする。
試した環境では「Visual Studio 2017」を使っており、64bit 版のバイナリを生成したいので、「Visual Studio 15 2017 Win64」を選択した。

Configuration が完了すると、以下のような画面になる。

OPENCV_EXTRA_MODULES_PATH」という項目を探し、「F:/OpenCV/3.4.3/opencv_contrib-3.4.3/modules」を設定し、もう一度「Configure」ボタンをクリックする。

「Configuring done」と正常に完了した場合、「Generate」をクリックする。
「F:\OpenCV\3.4.3\build」に「OpenCV.sln」が生成されるので、クリックして、Visual Studio で開く。

「Debug」モードにし、ソリューションエクスプローラーの「INSTALL」を右クリックし、「BUILD」を選択する。

同様に、「Release」モードにし、ソリューションエクスプローラーの「INSTALL」を右クリックし、「BUILD」を選択する。
ビルドが成功していれば、「E:\OpenCV\3.4.3\build\install\x64\vc15\bin」にバイナリが生成されている。

環境変数を編集」を開き、以下の環境変数を追加する。
OPENCV_DIR」に「F:\OpenCV\3.4.3\build\install」を設定する。
「Path」に「F:\OpenCV\3.4.3\build\install\x64\vc15\bin」を追加する。


OpenCV が使えるか試す。

以下のサンプルプロジェクトをビルドして、インストールがうまくできているか確認する。

sample
├─CMakeLists.txt
└─src
    └─main.cpp

CMakeLists.txt

cmake_minimum_required(VERSION 2.8)

project(sample)
add_executable(${PROJECT_NAME} src/main.cpp)

find_package(OpenCV REQUIRED)
include_directories(${OpenCV_INCLUDE_DIRS})
target_link_libraries(${PROJECT_NAME} ${OpenCV_LIBS})

main.cpp

#include <opencv2/opencv.hpp>

int main()
{
    cv::Mat img(100, 100, CV_8UC3, cv::Scalar(255, 255, 0));
    cv::imshow("sample", img);
    cv::waitKey();
}

以下のような水色の画像が表示されれば成功。


トラブルシューティング

cmake の段階で find_package(OpenCV REQUIRED) に失敗する場合

OpenCV_DIR の環境変数が正しく設定できていない。

ビルドの段階でリンクエラーになる場合

Path に OpenCV の共有ライブラリがあるディレクトリを正しく設定できていない。

実行時に「~.dll が見つからないため、プログラムを開始できません」とエラーがでた場合

Path に OpenCV の共有ライブラリがあるディレクトリを正しく設定できていない。