OpenCVOpenCV3.1.0

OpenCV3.1+Visual Studio 2015+64bitOSで簡単にOpenCVを試す

OpenCVも含めてライブラリを使うには、基本的に

 

  • ダイナミックリンクライブラリファイル(*.dll)
  • ライブラリファイル(*.lib)
  • ヘッダファイル(インクルードファイル)(*.h)

 

の3点セットのファイルを使えるように設定するのですが、やり方はいくつかあるのですが、ここでは比較的簡単な方法を紹介します。

【関連記事】

ライブラリの使用方法、VisualStudioの設定方法

 

前提条件

  • Windowsの64bitOS
  • Visual Studio 2013(VC12)もしくはVisual Studio 2015(VC14)

 

上記の環境であれば、あらかじめビルドされたOpenCVのライブラリファイルが配布されているので、これを使います。

 

上記環境でない場合、もしくは、標準に含まれていない機能を使いたい場合には、自分でOpenCVのライブラリをビルドする必要があるのですが、その方法については下記ページを参照下さい。

初めてのOpenCV開発 ― CMakeを使ったOpenCVのカスタマイズ【OpenCV 2.4.9】

 

 

OpenCVの入手、ダウンロード

Windows版のOepnCVは、下記ページに公開されています。

OpenCV - Browse /opencv-win at SourceForge.net
Open Source Computer Vision Library

OpenCV3.1+Visual Studio 2015+64bitOSで簡単にOpenCVを試す

 

2016年5月現在の最新バージョンはVer.3.1.0になるので、3.1.0の部分をクリックします。

次にopencv-3.1.0.exeの部分をクリックするとファイルのダウンロードが始まります。

OpenCV3.1+Visual Studio 2015+64bitOSで簡単にOpenCVを試す

 

ダウンロードが完了するとopencv-3.1.0.exeをダブルクリックするとファイルの解凍が始まるのですが、解凍先(Extract to:)はどこでもいいのですが、ここではCドライブ直下に設定しています。

 

OpenCV3.1+Visual Studio 2015+64bitOSで簡単にOpenCVを試す

 

解凍が終わるとopencvというフォルダが作成されますが、慣例的にバージョンが分かるようにフォルダ名を変えておきます。(必須ではありません)

 

  opencv 

    ↓

  opencv3.1.0

 

Visual Studio の設定

今回はVisual Studio 2015(VC14)の例で説明します。

再度おさらいですが、ライブラリを使用するには

  • ダイナミックリンクライブラリファイル(*.dll)
  • ライブラリファイル(*.lib)
  • ヘッダファイル(インクルードファイル)(*.h)

の3点セットが必要になります。

*.dllファイルはプログラム実行時に必要になり、*.libと*.hのファイルはプログラミング時に必要になります。

そのため、*.libと*.hの2種類のファイルをVisual Studioで使えるように、設定が必要となります。

 

まずは、Visual Studio を起動し、新しいプロジェクトを作成します。

 

OpenCV3.1+Visual Studio 2015+64bitOSで簡単にOpenCVを試す

 

Visual C++ → Win32 → Win32コンソールアプリケーション

 

と選択し、プロジェクトの名前場所を指定し、OKボタンをクリックします。

 

OpenCV3.1+Visual Studio 2015+64bitOSで簡単にOpenCVを試す

 

次の画面では、そのまま完了をクリック

 

OpenCV3.1+Visual Studio 2015+64bitOSで簡単にOpenCVを試す

 

すると、こんな↓最小限のコードが作成せれます。

これをベースにOpenCVの設定を行っていきます。

 

OpenCV3.1+Visual Studio 2015+64bitOSで簡単にOpenCVを試す

 

プロジェクト名の部分を右クリックし、プロパティをクリックします。

 

OpenCV3.1+Visual Studio 2015+64bitOSで簡単にOpenCVを試す

 

まずはヘッダファイル(インクルードファイル)(*.h)を使えるように設定を行います。

 

プロパティのページで、構成すべての構成プラットフォームx64であることを確認して下さい。

違う場合は、それぞれすべての構成とx64を選択して下さい。

 

OpenCV3.1+Visual Studio 2015+64bitOSで簡単にOpenCVを試す

 

C/C++→全般と選択し、追加のインクルードディレクトリマークをクリックし、<編集…>をクリックします。

 

ここで、OpenCVを解凍したフォルダ内のbuild\includeフォルダを選択し、フォルダーの選択をクリックします。

※ここでは最初に解凍フォルダをopencvからopencv3.1.0に名前を変更しています。

 

OpenCV3.1+Visual Studio 2015+64bitOSで簡単にOpenCVを試す

 

次にOKボタンをクリックします。

 

OpenCV3.1+Visual Studio 2015+64bitOSで簡単にOpenCVを試す

 

これで、ヘッダファイル(*.h)の設定は完了です。

 

次にライブラリファイル(*.lib)の設定を行います。

OpenCVの場合、ライブラリファイルの実体はOpenCVのバージョンやDebug用、Release用と異なるので注意して下さい。

 

OpenCV Ver.3.1.0の場合

Release用  opencv_world310.libなど

Debug用  opencv_world310d.libなど

 

となります。

ファイル名の310の部分はバージョン名になるので、別のバージョンを使用する場合には310の部分を読み替えて下さい。

 

また、古いバージョンのOpenCVでは機能ごとにlibファイルが用意されていたので、使用する機能ごとに複数のlibファイルを使用できるように設定する必要があったのですが、最近のバージョンでは、opencv_world310.libというように、いくつかの機能が一つのファイルにまとめられたので、普通の画像処理のフィルタ処理などを行いたい場合では、このファイルを使用できるように設定すればOKです。

 

インクルードファイル(ヘッダファイル)の時と同様に、プロジェクトのプロパティ―をクリックし、

構成すべての構成プラットフォーム が x64

であることを確認し

リンカー→全般→追加のライブラリディレクトリ

と選択し、<編集…>をクリックします。

 

OpenCV3.1+Visual Studio 2015+64bitOSで簡単にOpenCVを試す

 

ここで新しい行を選択します。

 

OpenCV3.1+Visual Studio 2015+64bitOSで簡単にOpenCVを試す

 

[・・・] の部分をクリック

 

OpenCV3.1+Visual Studio 2015+64bitOSで簡単にOpenCVを試す

 

ここで、OpenCVを解凍したフォルダ内のbuid\x64\vc14内のlibフォルダを選択し、フォルダーの選択ボタンをクリックします。

※Visual Studio 2013を使う場合はbuid\x64\vc12内のlibフォルダを選択してください。

 

OpenCV3.1+Visual Studio 2015+64bitOSで簡単にOpenCVを試す

 

OKボタンをクリックして、libファイルの参照先(フォルダ)の設定が完了します。

 

OpenCV3.1+Visual Studio 2015+64bitOSで簡単にOpenCVを試す

 

次に、実際に使用するlibファイルの参照設定を行うのですが、これはDebug用、Release用と別々に設定する必要があります。

まずは、Debug用の設定です。

 

構成の部分をこれまではすべての構成にしていましたが、Debugを選択します。

 

OpenCV3.1+Visual Studio 2015+64bitOSで簡単にOpenCVを試す

 

次に、プロパティ―ページのリンカー→入力→追加の依存ファイルの部分のマークをクリックします。

 

OpenCV3.1+Visual Studio 2015+64bitOSで簡単にOpenCVを試す

 

次に<編集…>をクリック

 

OpenCV3.1+Visual Studio 2015+64bitOSで簡単にOpenCVを試す

 

ここで、Debug用のlibファイル名(opencv_world310d.lib)を入力しOKボタンをクリックします。(ファイル選択ではありません。)

 

OpenCV3.1+Visual Studio 2015+64bitOSで簡単にOpenCVを試す

 

次にRelease用のlibファイルを設定するため、構成の部分をReleaseに切り替えます。

 

OpenCV3.1+Visual Studio 2015+64bitOSで簡単にOpenCVを試す

 

Debug用の時と同様に今度はRelease用のlibファイル名(opencv_world310.lib)を入力しOKボタンをクリックします。注!)ファイル名にdが付きません。

 

OpenCV3.1+Visual Studio 2015+64bitOSで簡単にOpenCVを試す

 

OKボタンをクリックし、適用ボタンをクリックするとVisual Studioの設定は完了です。

 

OpenCV3.1+Visual Studio 2015+64bitOSで簡単にOpenCVを試す

 

サンプルプログラム

新規に作成したプロジェクトに#includeの部分とmain関数内に以下のようにプログラムを書いてみます。

#include "stdafx.h"

#include <opencv2/opencv.hpp>

int main()
{
 // 処理前の画像データ読込
 cv::Mat src = cv::imread("C:\\temp\\Mandrill.BMP", cv::IMREAD_UNCHANGED);
 // 処理後画像データ用
 cv::Mat dst;

 // 大津の二値化
 cv::threshold(src, dst, 0, 255, cv::THRESH_OTSU);

 // 処理前の画像を表示
 cv::imshow("SrcImage", src);
 // 処理後の画像を表示
 cv::imshow("DstImage", dst);

 // キー入力待ち
 cv::waitKey(0);

 return 0;
}

ソリューションプラットフォームがx86になっていたら、これをx64に変更します。

 

OpenCV3.1+Visual Studio 2015+64bitOSで簡単にOpenCVを試す

 

この状態で、プロジェクトをビルドします。

ちなみに、この状態で実行すると以下のようなメッセージが表示されます。

 

OpenCV3.1+Visual Studio 2015+64bitOSで簡単にOpenCVを試す

 

これはプログラム実行中に必要なダイナミックライブラリファイル(*.DLL)が見つからないためで、OpenCVの場合はPathを設定します!という説明が多いのですが、今回は手抜きなので、解凍したOpenCVのフォルダ(C:\opencv3.1.0\build\x64\vc14\bin など)内のdllファイルをコピーする事にします。

 

Visual Studio でx64でDebug、Releaseでビルドすると、それぞれ

 

(ソリューションフォルダ)\x64\Debug

(ソリューションフォルダ)\x64\Release

 

というフォルダができているので、解凍したOpenCVのフォルダ(C:\opencv3.1.0\build\x64\vc14\bin など)から

 

Debugの場合、opencv_world310d.dllのファイルを\x64\Debugのフォルダに

Releaseの場合、opencv_world310.dllのファイルを\x64\Releaseのフォルダに

 

コピーします。

この方法だと、Pathの設定をしないで済むので、プロジェクトごと他のPCに移植する場合などに、Pathの設定をせずに移植できるので、比較的簡単です。(OpenCVのファイルはやっぱり必要になりますが。。)

デメリットとしては、プロジェクトごとにDLLファイルをコピーするので、HDDを圧迫することになります。

と言ってもDebug,Release両方合わせても100MBぐらいなので、今どきのPCなら問題ないでしょう?!

 

この状態で、プログラムを実行し以下のように表示されたら、設定成功です!

OpenCV3.1+Visual Studio 2015+64bitOSで簡単にOpenCVを試す

 

トラブルシューティング

■includeファイルを開けませんと表示される

プロジェクトのプロパティで構成のプロパティ→C/C++→全般追加のインクルードディレクトリが正しく設定されているか?確認してください。設定は構成やプラットフォームごとに設定できるようになっているので、構成がDebugやRelease、プラットフォームがx64になっているか?確認してください。

 

■ファイル’opencv_world310d.lib’を開くことができません。と表示される

プロジェクトのプロパティで構成のプロパティ→リンカー→全般追加のライブラリディレクトリに正しく*.libファイルのあるディレクトリが指定されているか?確認してください。

 

■未解決のシンボル”XXXXX”が関数XXXXで参照されました。と表示される

これは割とよくあるエラーです。

プロジェクトのプロパティで構成のプロパティ→リンカー→入力追加の依存ファイルに正しく*.libファイルが設定されているか?確認してください

 

その他

GPUの処理も試してみたい!とかいう人向けには、Build INSIDERのこの辺の記事↓

 

OpenCV入門

OpenCV入門【3.0対応】
オープンソースのコンピューター・ビジョン・ライブラリ「OpenCV」の基礎や基本的な使い方、3.0の新機能を解説する連載。初版=バージョン2.4.9に基づく記事。現在はバージョン3.0/3.1に対応。

 

が参考になると思いますが、CMakeって何???という人には、まずは本記事の方法がおススメです。

 

コメント

タイトルとURLをコピーしました