Categories: OpenCV画像処理

Windows10でOpenCV3.4.1とopencv_contrib環境構築

opencv_contribはOpenCVの拡張モジュール群です。OpenCVの標準機能に加えて、更なる機能が提供されています。

今回はこのopencv_contribの中に使いたいAPIがあったため、Visual Studio 2015でopencv_contribの環境構築をしてみたいと思います。

バージョンは現時点で最新版のOpenCV3.4.1としました。opencv_contribを含まないOpenCVだけの環境構築は、以下の記事をご参照ください。

参考記事:Visual Studio 2015でOpenCV 3.4環境構築

opencv_contribを使いたい場合には、CMakeを用いてソースからビルドをする必要があります。

今回の環境

・Windows 10
・Visual Studio 2015 Community(導入済)

導入方法

(1) OpenCV3.4をダウンロード

まずはOpenCVの公式サイトから3.4.1のSourceをダウンロードします。「Sources」をクリックしましょう。

外部サイト:Releases – OpenCV library

すると、zipファイルがダウンロードされると思います。こちらは任意のフォルダに保存し、zipファイルを解凍してください。

今回はCドライブ直下に「opencv341」というフォルダを作り、作業フォルダとしました。特に複数バージョンのOpenCVを入れて使い分ける可能性がある場合には、バージョンがわかるようなフォルダ名にしておくとよいでしょう。

(2) opencv_contribのダウンロード

次にopencv_contribをダウンロードします。

外部サイト:opencv_contrib(Github)

上記サイトからopencv_contribのソースをダウンロードします。

必ず、ダウンロードしたOpenCVのバージョンと対応するcontribをダウンロードしてください。今回はOpenCV3.4.1なので、3.4.1をダウンロードしました。

同じくダウンロードしたzipファイルを解凍し、さっきと同じく、Cドライブ直下に作成した「opencv341」の中で展開します。

ひとまず、以下のような状態となりました。  これで、必要なファイルについては準備完了です。

(3) CMakeのダウンロード

次にCMakeとVisual Studioを使ってOpenCVのビルドをしていきましょう。

CMakeは様々なコンパイラでビルドを可能とするツールで、今回はCMakeでビルド用のソリューションファイルを作成し、Visual Studioにてビルドします。

まずはじめに、CMakeの公式より、Cmakeの最新バージョンをダウンロードします。

外部サイト:CMake

Download Latest Releaseより、最新版のCMakeをダウンロードしましょう。Windows用のInstallerを選択します。

ダウンロードしたインストーラを起動し、それに従ってCMakeをインストールします。基本的にはデフォルトのまま「Next」でOKです。

保存先も好きな場所を指定してください。今回はCドライブ直下としました。

これにて、CMakeのインストールは完了です。

(4) CMakeによるソリューションの作成

CMakeを使ってOpenCVをビルドしていきます。

CMakeを起動し、OpenCVのsourceフォルダを先ほどダウンロードしたOpenCVのダウンロード先のsourceフォルダに設定します。私の場合は、

Where is the source code:「C:/opencv341/opencv-3.4.1」
Where to build the binaries :「C:/opencv341/build」

としました。

その後「Configure」をクリックします。

buildフォルダがないので作れという指示が出るかもしれませんが、Yesで先に進みましょう。

すると以下のようなウィンドウが出ますが、今回はVisual Studio 2015(64ビット)を用いるので、以下のように設定しました。

「Configuring done」が出れば成功です。

ここから、ビルドするOpenCVの設定を変更していきます。

<1> CUDAの設定をOFFにする

取りあえず今回はCUDAは使わなくてもOKなので、「WITH_CUDA」「WITH_CUBLAS」「WITH_CUFFT」のチェックは外しました。

<2> opencv_contribモジュールの場所を指定する

また、ここでopencv_contribを含めてビルドをするために、「OPENCV_EXTRA_MODULES_PATH」にダウンロードしたopencv_contribのmodulesファイルを指定します。

私の場合は「C:\opencv341\opencv_contrib-3.4.1\modules」を設定しました。

<3> BUILD_opencv_worldにチェックを入れる(オプション)

デフォルトの設定だと、OpenCVの様々なモジュールがそれぞれ別のファイルとして生成されてしまうのですが、それを統合することができるのがBUILD_opencv_worldの設定です。

これにチェックを入れておくことで、各モジュールがそれぞれの.libを生成することなく、「opencv_world341.lib」「opencv_world341.dll」という一つのライブラリで生成されます。

個人的にはリンクしてしまった方が楽だと思うので、BUILD_opencv_worldにチェックを入れました。

<4> OpenCVのインストール場所の設定(オプション)

こちらもオプションで、デフォルトの設定のままでも大丈夫とは思いますが、この後Visual Studioでビルドした際に生成されるlibやdllファイル一式がインストールされる場所を設定しておきます。

今回は「C:/opencv341/install」としました。インストールしたいフォルダを各自設定してください。

<5> 再度Configureを行い、ソリューションファイルを生成

<1>~<4>の設定後、再度「Configure」をクリックします。

「Configure」が終了したら、引き続き「Generate」をクリックし、終了まで待ちます。「Generating done」が表示されれば、正常終了です。

(5) Visual Studioを用いたビルド

無事CMakeでの処理が完了すると、設定したビルド先のフォルダにVisual Studioのソリューションができていると思います。

私の場合は「C:\opencv341\build」に設定したので、このフォルダ内にある「OpenCV.sln」を起動しました。

ビルド方法ですが、「ALL_BUILD」「INSTALL」という二つのプロジェクトをパッチビルドします

ビルドには時間が掛かるので気長に待ちましょう。

ビルドが終了したら、「(4)-<4> OpenCVのインストール場所と設定」で設定したフォルダに、OpenCVのファイル一式ができていると思うので確認してみましょう。

・ヘッダが「install\include」
・DLLが「install\x64\vc14\bin」
・LIBが「install\x64\vc14\lib」
の中に生成されていれば、インストールは完了しています。

これらのフォルダにパスを通すことで、contribモジュールを含めたOpenCVを利用したプログラムを作ることができます。

まとめ

このままテストコードの実行と行きたいところですが、少々記事が長くなってしまったので、ビルドが完了したここで一旦記事を畳みたいと思います。

次回は、インストールされたopencv_contribを使って、何かプログラムを書いてみたいと思います。

  

Haruoka