Visual Studio 2015 でOpenCV2.xを使う (第2回)

前回はCMakeを使ってVisual Studio 2015用のOpenCVプロジェクトを生成するところまで紹介しました。

 

tuttitan.hatenablog.com

 

今回は、OpenCVプロジェクトのビルドから動作確認までを見ていきたいと思います。

 

 

1. OpenCVプロジェクトのビルド

(Generate実行後)CMakeの [Open Project] ボタンをクリックするか、buildフォルダにある "OpenCV.sln" を開くと、Visual Studio 2015が起動し、ソリューション "OpenCV" が読み込まれている状態になります。

f:id:tuttitan:20161227153324p:plain

 

まずはDebug用のバイナリとライブラリファイルを生成したいと思うのので、ソリューションの構成が「Debug」になっていることを確認します。(32bit用の場合は「Win32」、64bit用の場合は「x64」になります)

f:id:tuttitan:20161227153432p:plain

 

ソリューションをビルドします。Debugの場合はあまり時間がかからなかったです。

f:id:tuttitan:20161227153752p:plain

 

ビルド中は下方にある出力ウィンドウにログが出力されます。ビルドが完了するとその旨が出力ウィンドウに表示されます。エラーや失敗がないことを確認して下さい。

f:id:tuttitan:20161227154150p:plain

f:id:tuttitan:20161227154332p:plain

 

ビルドが正常に終了したら、ソリューションの構成を「Release」に変更して、同様にビルドを行ないます。

f:id:tuttitan:20161227154516p:plain

 

以上で、Debug用とRelease用のバイナリとライブラリファイルが生成されたことになります。場所としてはbuildフォルダの下に "bin" と "lib" が作られており、その中にそれぞれ "Debug" と "Release" がある構成になっています。

C:\opencv
└─ opencv-2.4.13
     ├─ build
     ├─ sources
     ├─ LICENSE.txt
     ├─ README.md.txt
     └─ build_x86
          ├─ bin
          |   ├ Debug
          |   └ Release
          └─ lib
               ├ Debug
               └ Release

 

 

2. バイナリとライブラリファイルを配置する

このままのフォルダ構成でも問題はないのですが、見通しをよくするためにファイルを再配置します。

もともとあるOpenCVのbuildフォルダを見てみると、以下のような構成になっています。

C:\opencv
└─ opencv-2.4.13
     ├─ build
     |   ├─ x86
     |   |   ├─ vc11
     |   |   └─ vc12
     |   |        ├─ bin
     |   |        └─ lib
     |   └─ x64
     |        ├─ vc11
     |        └─ vc12
     |             ├─ bin
     |             └─ lib
     ├─ sources
     ├─ LICENSE.txt
     ├─ README.md.txt
     └─ build_x86

 

つまり、buildの下に "x86"(32bit用)と "x64"(64bit用)があり、その下にそれぞれ "vc11"(Visual Studio 2012用)と "vc12"(Visual Studio 2013用)があって、その中に "bin"(バイナリ)と "lib" ライブラリファイルがあることになります。

このフォルダ構成になって、vc14(Visual Studio 2015用)のフォルダを作ってそこに先ほどビルド生成したバイナリとライブラリファイルを配置したいと思います。

なお、再配置するファイルは以下の拡張子のものになります。

  • exe
  • dll
  • lib

拡張子がpdb、ilk、expのものはVisual Studioのプロジェクトが使用するファイルなので移動させる必要はありません。

 

 

3. OpenCVの動作確認を行なう

ビルド生成して配置したOpenCVバイナリとライブラリファイルが正しく使えるか確認します。Visual Studio 2015 を起動させて適当な場所にコンソールアプリケーションのプロジェクトを作成します。

 

OpenCVのサンプルページを参考に適当にプログラムを書きます。

入出力 — OpenCV2 プログラミングブック リファレンス編

f:id:tuttitan:20161227184850p:plain

 

プロジェクトのプロパティを編集します。左方の「VC++ ディレクトリ」を選択し、「インクルード ディレクトリ」と「インクルード ディレクトリ」に以下をそれぞれ追加します。

インクルード ディレクト C:\opencv\opencv-2.4.13\build\include
ライブラリ ディレクト C:\opencv\opencv-2.4.13\build\x86\vc14\lib

f:id:tuttitan:20161227185914p:plain

 

Debug構成およびRelease構成でビルドできることを確認します。ソリューションフォルダの下に "Debug" フォルダと "Release" フォルダが出来ているので、dllファイルを "C:\opencv\opencv-2.4.13\build\x86\vc14\bin" よりそれぞれのフォルダにコピーします

コピー先コピー元
ソリューション名/Debug C:\opencv\opencv-2.4.13\build\x86\vc14\bin\Debug
ソリューション名/Release C:\opencv\opencv-2.4.13\build\x86\vc14\bin\Release

 

 「デバッグの開始」を実行してうまく動けばOKです。

f:id:tuttitan:20161227191121p:plain