2013年6月12日水曜日

VisualStudio2012でOpenCV2.4.5を動かす


■ダウンロード
http://sourceforge.net/projects/opencvlibrary/files/opencv-win/

(1) 2.4.5をクリック
(2) OpenCV-2.4.5.exeをクリックするとダウンロードが始まる(266MB)
(3)ダウンロード中にC:に「OpenCV2.4.5」フォルダを作成

■インストール
(1)OpenCV-2.4.5.exeをクリックし起動
(2)「...」を選択し、C:\OpenCV2.4.5フォルダを選択
(3)Extractをクリック
(4)C:\OpenCV2.4.5\opencvへインストールされる


■環境変数設定
(1)スタート→コンピュータ(右クリック)→プロパティ→設定の変更→詳細設定→環境変数
PATHへ
  C:\OpenCV2.4.5\opencv\build\x86\vc11
  C:\OpenCV2.4.5\opencv\build\x86\vc11\bin
  の二つを追加(VC11 = VisualStudio2012)

■コンパイルテスト
(1)Visual Studio2012を起動し、Win32プロジェクトで新規作成

















(2)stdafx.hに以下のコードを追加
#include <opencv2/opencv.hpp>
#include "OpenCVheader.h"
(3)プロジェクトのプロパティ→構成プロパティ→VC++ディレクトリ→インクルードディレクトリ
(4)C:\OpenCV2.4.5\opencv\build\includeを追加
(5)プロジェクトのプロパティ→構成プロパティ→VC++ディレクトリ→ライブラリディレクトリ
(6)C:\development\OpenCV2.4.2\opencv\build\x86\vc11\lib
(7)構成プロパティ→全般→共通言語ランタイムサポートを(/clr)へ変更
  (ここを忘れるとアンマネージ関数をコンパイル出来ませんと怒られる)
(8)ヘッダーファイル上で右クリックし、ヘッダーファイル(OpenCVheader.h)を新規作成。





















(9)OpenCVheader.hへ以下のコードを挿入

// バージョン取得
#define CV_VERSION_STR CVAUX_STR(CV_MAJOR_VERSION) CVAUX_STR(CV_MINOR_VERSION) CVAUX_STR(CV_SUBMINOR_VERSION)

// ビルドモード
#ifdef _DEBUG
#define CV_EXT_STR "d.lib"
#else
#define CV_EXT_STR ".lib"
#endif

// ライブラリのリンク(不要な物はコメントアウト)
#pragma comment(lib, "opencv_core"            CV_VERSION_STR CV_EXT_STR)
#pragma comment(lib, "opencv_highgui"        CV_VERSION_STR CV_EXT_STR)
#pragma comment(lib, "opencv_imgproc"  CV_VERSION_STR CV_EXT_STR)
#pragma comment(lib, "opencv_calib3d"  CV_VERSION_STR CV_EXT_STR)
//#pragma comment(lib, "opencv_gpu"   CV_VERSION_STR CV_EXT_STR)
//#pragma comment(lib, "opencv_video"   CV_VERSION_STR CV_EXT_STR)
#pragma comment(lib, "opencv_objdetect"  CV_VERSION_STR CV_EXT_STR)
//#pragma comment(lib, "opencv_features2d" CV_VERSION_STR CV_EXT_STR)
//#pragma comment(lib, "opencv_flann"   CV_VERSION_STR CV_EXT_STR)
//#pragma comment(lib, "opencv_ffmpeg"  CV_VERSION_STR CV_EXT_STR)
//#pragma comment(lib, "opencv_ts"   CV_VERSION_STR CV_EXT_STR)
//#pragma comment(lib, "opencv_contrib"  CV_VERSION_STR CV_EXT_STR)
//#pragma comment(lib, "opencv_ml"   CV_VERSION_STR CV_EXT_STR)
//#pragma comment(lib, "opencv_legacy"  CV_VERSION_STR CV_EXT_STR)

(10)ビルドでOK


ここまでしてアレなんですが、正直VisualStudio2010で組んだ方が楽だと思われます。
VC++2012にはフォームデザイナーが存在しない為、レイアウトの作成が非常に手間ですので。

0 件のコメント:

コメントを投稿