OpenCV

opencv.png

チュートリアル

OpenCV-tutorial
OpenCV2.0-doxigen

使用準備

//OpenCV関係
#include <opencv/cv.h>
#include <opencv/highgui.h>//cvLoadImageに必要
#include <opencv2/core/core.hpp>
#pragma comment(lib,"opencv_highgui240d.lib")
#pragma comment(lib,"opencv_core240d.lib")
#pragma comment(lib,"opencv_imgproc240d.lib")//CalcHistに必要

OpenCVのダウンロード

OpenCV for Windows
最新バージョンとか色々あるが、
ここで名前の読み方

  • OpenCV-2.4.4-beta.exeのようなものは、自分でCMakeしなきゃいけないもの。
  • demos-packとかいてあるやつはどうも本体じゃないっぽい。
  • OpenCV-2.3.1-win-superpack.exe…superpackとかいてあるやつは、既にVisual Studio用にコンパイルしてくれているものらしい。ただし自分でPATHの設定をする必要がある。

プレコンパイル済みバージョンをダウンロードする場合

OpenCV-*.*.*-win32-vs2008.exeをゲット
TBBをゲット1

プレーンバージョンをダウンロードして自分でCMakeでslnファイルを作る場合

CMakeの2.6以降Visual Studio用の.slnファイルを作るために必要らしい。
cmake-gui.exeを起動する(CMakeのフォルダのbin以下に入っている)
注意…CMakeを開くときはVisualStudioは開かないこと。
ダウンロードして解凍たOpenCVのフォルダはこういうところにおく。

F:\programfiles\opencv

フォルダ名にスペースがあったり、日本語があったりしないところに置くこと。
cmake.png
次にConfigureボタンを押す。
next.png
しばらく待ちます。
waiting.png
おわるとこうなる
finished.png
この図で CUDA_TOOLKIT_ROOT_DIR not found or specifiedと書いてあるのは、
CMake使っている時にまだCUDAをインストールしてなかったからである。
この状態だったらWITH_CUDAのチェックを外したほうがいい。
よくわかんないけどOpenGLは入っている自信があったからWITH_OPENGLにチェックをしてみた。
そしたらまたConfigureを押す
暫く待つとこうなる。
done.png
もしこの場面で、赤く表示されてるマスがあったら、それはパスが間違ってるということ。
そうしたら、その部分のパスを修正してもう一回Configureを押すこと。
赤い部分がなくなったら今度はGenerateボタンを押す。
そうするとようやくOpenCV.slnというファイルができる。
できる場所はさっきのフォルダ

F:\programfiles\opencv

もうCmakeは用済み、

VisualStudioからコンパイルして、dll,libなどを得る

OpenCV.slnを開こう。

「ビルド」→「構成マネージャ」

で次の画面を開き、INSTALLにチェックする。Debug,Release両方とも。
vc.png
そしたら「閉じる」を押して、

ビルド→ソリューションのビルド

をする。(F7)を押してもいい。Debug,Release両方ビルドする。
終わったら、

dll

F:\programfiles\opencv\install\bin

include

F:\programfiles\opencv\install\include

NuGetからインストールした場合

C:\Users\ユーザー名\Documents\Visual Studio 2015\Projects\プロジェクトフォルダ\packages\OpenCV.2.4.10\build\native\include++ lib
F:\programfiles\opencv\install\lib

Getting Started

以下は最も簡単なコード。これがコンパイルできるかな?
このコードに必要なlibは
デバッグ版なら
opencv_core220d.lib;opencv_highgui220d.lib
リリース版なら
opencv_core220.lib;opencv_highgui220.lib

#include <cv.h>
#include <highgui.h>
 
int main ( int argc, char **argv )
{
  cvNamedWindow( "My Window", 1 );
  IplImage *img = cvCreateImage( cvSize( 640, 480 ), IPL_DEPTH_8U, 1 );
  CvFont font;
  double hScale = 1.0;
  double vScale = 1.0;
  int lineWidth = 1;
  cvInitFont( &font, CV_FONT_HERSHEY_SIMPLEX | CV_FONT_ITALIC,
              hScale, vScale, 0, lineWidth );
  cvPutText( img, "Hello World!", cvPoint( 200, 400 ), &font,
             cvScalar( 255, 255, 0 ) );
  cvShowImage( "My Window", img );
  cvWaitKey();
  return 0;
}

遭遇したエラー

msvcr90.dllで例外がスローされました

msvcr90.dllとはVisual Studio 2008 の Visual C++ 再頒布可能パッケージのこと
久しぶりにOpenCV2.1とVisual Studio 2015使ったらこんなエラーになってしまった。
仕方ないのでOpenCV2.4.10をインストールすることにした

MSVCP120D.dllがみつかりません

OpenCV2.4.10をインストールして実行したら次はこんなエラーになった。
Device Updaterエラーメッセージ: MSVCP120.dllが見つからない (Windows)
Microsoft Visual Studio 2013のVisual C++ 再頒布可能パッケージのインストールが必要になるらしい、と書いてあるところもあったが
だめだった。
なので
Visual studio 2013 Express for Desktopをここからダウンロードしました。
そしたらやっと解決、ふー。

まとめ OpenCVとVisual Studio

OpenCV2.1 Visual Studio 2008
OpenCV 2.4.10 Visual Studio 2013

サポートサイト Wikidot.com