OpenCV3.4.3の環境構築【Windows10】
はじめに
Windows環境かつVisual Studioで、OpenCVを利用したアプリケーション開発を行いたい人向けの環境構築方法について載せておきます。なお、OpenCV3.4.3をCmakeを用いてビルドする方法を紹介します。動作確認としてVisual Studio 2015を利用します。
OpenCVによる画像処理入門 改訂第2版 (KS情報科学専門書)
- 作者: 小枝正直,上田悦子,中村恭之
- 出版社/メーカー: 講談社
- 発売日: 2017/07/07
- メディア: 単行本(ソフトカバー)
- この商品を含むブログを見る
環境
Windows10 Pro
Visual Studio 2015
OpenCV3.4.3
CMake3.13.0
CMakeのインストール
現行で最新のcmake-3.13.0のwindows版を公式サイトからダウンロードします。今回はzipファイルを選択します。
↓ダウンロードリンク(zipファイルがダウンロードされます)
https://cmake.org/files/v3.13/cmake-3.13.0-rc2-win64-x64.zip
zipファイルをインストールしたら任意のフォルダに展開(解凍)してください。私の環境では2,3分かかりました。
このようなフォルダとなっているはずです。
「~\bin\cmake-gui.exe」でもうCMakeを使うことができます。
cmake-gui.exeを実行すると以下のようなGUIが表示されれば正常にインストール完了です。
もし以下のような注意が表示された場合は、「詳細情報」から「実行」を選択してください。
OpenCVのインストール
現行でOpenCV3シリーズ最新の”OpenCV3.4.3”のwindows版を公式配布サイトからダウンロードします。今回はCMakeでビルドするので「Sources」を選択します。
↓ダウンロードリンク(zipファイルがダウンロードされます)
https://github.com/opencv/opencv/archive/3.4.3.zip
zipファイルをインストールしたら任意のフォルダに展開(解凍)してください。私の環境では3分くらいかかりました。
このようなフォルダ構成となっているはずです。
それではCmakeでビルドしていきます。
Cmake-GUIを起動して、以下の操作をしてください。
- ソースコード場所には、さっき解凍した先のルートディレクトリ「C:\<保存先>\opencv-3.4.3」を、ビルド先(ソリューションファイルの生成先)には,「C:\<保存先>\opencv-3.4.3\build」をそれぞれ指定
- 「Configure」をクリック
- 今回はVisual Studio 2015の環境なので、コンパイラは「Visual Studio 14 2015 Win64」を指定
そうすると、
下図のように設定可能なパラメータが赤く表示されます。任意で設定項目を変更してください。特に設定をしない場合は、そのままで結構です。
CUDAの設定を行いたい方は、次節を読んでください。
設定をカスタマイズした後に「Configure」をクリックし、最後に「Generate」をクリックことで、ソリューションファイルを生成できます。
CUDAの設定を行う
使用するパソコンにCUDAがインストールされており、OpenCVのCUDA機能を使いたい人のみ以下の設定を行ってください。なお、この設定を行うとビルド時間がとても長くなります。
(以前に他のPCでセットアップした時の設定なのでVersionが異なります)
↓↓ GPUのアーキテクチャ番号の確認
https://developer.nvidia.com/cuda-gpus
OpevCVでCUDAを利用する場合の設定は以上です。
以下はCUDAを利用しない人も共通です。
OpenCVのビルド
ソリューションファイルの生成先に指定した「C:\<保存先>\opencv-3.4.3\build」直下にある「OpenCV.sln」をVisual Studioで開きます。
- バッチビルドから”ALL_BUILD”のDebugとReleaseをチェックします。
- チェックしたら”ビルド”します。
- ビルドが終了し「C:/<保存先>/opencv-3.4.3/build/install」にinclude、libおよびbinが正しく保存されていれば完了です。
サンプルプログラム
黒背景に緑色の「OpenCV」の文字を描画した画像を生成するだけのプログラムになります。実行すると以下のような画像が表示されます。
#include <opencv2/highgui.hpp> #include <opencv2/imgproc.hpp> #include <iostream> // OpecCVのライブラリの読み込み #ifdef _DEBUG #pragma comment(lib,"opencv_core343d.lib") #pragma comment(lib,"opencv_highgui343d.lib") #pragma comment(lib,"opencv_imgproc343d.lib") #else #pragma comment(lib,"opencv_core343.lib") #pragma comment(lib,"opencv_highgui343.lib") #pragma comment(lib,"opencv_imgproc343.lib") #endif int main() { // 幅320px-高さ240pxの画像を生成 cv::Mat img(cv::Size(320, 240), CV_8UC3, cv::Scalar(0, 0, 0)); // 画像に「OpenCV」の文字列を描画 cv::Mat dst = img.clone(); cv::putText(dst, "OpenCV", cv::Point(80, 100), cv::FONT_HERSHEY_SIMPLEX, 1.2, cv::Scalar(0, 200, 0), 2, CV_AA); // 描画 cv::imshow("dst image", dst); cv::waitKey(10000); return -1; }