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

シェアする

  • このエントリーをはてなブックマークに追加
最近の記事
  • 10/21 【C#】寸法線の描画
  • 10/21 【C#】GraphicsPathの領域取得
  • 10/20 【C#】GraphicsPathの描画
  • 10/18 【C#】GraphicsPath
  • 10/17 【C#】Bitmap画像データの拡大縮小
  • 10/15 【C#】画像の座標系
  • 10/14 【C#】画像の上下左右反転、90,180,270度回転
  • 10/3 【C#】SplitContainerのPanel固定方法
  • 9/7 【Neural Network Console】学習データの出力方法
  • 9/3 Deep Learning向け学習画像撮り込みソフト公開
  • 9/1 【Neural Network Console】新規画像のDataset作成方法
  • 8/28 【Neural Network Console】GUI表示スケールの変更
  • 8/22 【Neural Network Console】CPU/GPU処理の設定切替
  • 8/21 【Neural Network Console】Learning Rate(学習率)の設定
  • 8/20 ソニーの無償AIソフト Neural Network Consoleの入手ダウンロード、インストール
  • 8/20 Deep Learning
  • 8/20
  • 8/19 古いバージョンのVisual Studio Community/Expressの入手ダウンロード
  • 8/19 CUDAの入手、ダウンロード、インストール方法
  • 8/17 【C#.NET】マイクロソフト仕様のアフィン変換
  • 8/5 【C#】ファイルを開くダイアログボックスの表示
  • 8/2 キャノンプリンターのCDトレイはどこ?!
  • 7/6 【参考書籍】画像処理・機械学習プログラミング OpenCV 3対応
  • 6/20 【Python,matplotlib】動くグラフをAnimationGifに保存する方法
  • 6/17 シグモイド関数の微分
  • 6/15 シグモイド関数
  • 6/13 合成関数の微分
  • 6/12 WordPressで数式エディタ風に数式を入力したい
  • 6/11 PythonをVisual Studioでインストールする方法
  • 6/9 【Python】OpenCVをAnacondaでインストール(Windows編)
  • 6/6 【Python】Anacondaで複数バージョンの環境切り替え
  • 6/6 画像センシング展2017に出展します。
  • 6/1 【Office365】Web版Outlookのフォントサイズ変更
  • 6/1 【Anaconda】モジュールのアップデートでエラー発生
  • 6/1 【Anaconda】コマンドリストの表示
  • 5/29 Windows10パソコン購入
  • 5/24 Anacondaのアンインストール
  • 5/24 【Jupyter Notebook】新規プログラムの作成
  • 5/23 【Python】開発環境の構築
  • 5/23 Pythonはじめました
  • 4/6 【Office365】Web版Outlookのスレッド表示を解除する方法
  • 4/5 【Excel】フーリエ解析(FFT)
  • 3/20 Canny edge detection
  • 3/20 【Excel2016】分析ツールの表示
  • 3/5 【Visual Studio】黒い背景色を白に変更する方法
  • 2/8 【Windows10】拡張モニタに表示されたウィンドウを元に戻す
  • 2/7 複素数の計算
  • 1/18 【Excel】棒グラフの横軸の目盛を0始まりにする
  • 1/16 【Excel】フーリエ変換
  • 1/6 【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は、下記ページに公開されています。

    https://sourceforge.net/projects/opencvlibrary/files/opencv-win/

    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入門

    http://www.buildinsider.net/small/opencv

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