Windows7にopenCV2.2.0をインストールしてみた。


SURFが使ってみたくて、Windows7 pro 32bitにopenCVをインストールしてみた。
インストールから、VC++のHelloWorldプロジェクトでビルドを通すまでをメモ。
基本、スムーズにいって15分くらいで出来た。

インストール

  1. http://sourceforge.net/projects/opencvlibrary/files/opencv-win/2.2/から「OpenCV-2.2.0-win32-vs2010.exe」を選択してダウンロード。VisualStudio2010を持ってなくてもこれです。(自分の環境は2005&2008)
  2. ダウンロードが終わったら、exeを実行するとインストールが始まります。特に迷う所はないですが、環境変数を設定しますか?と聞かれたので、とりあえず、カレントユーザのみ作成を選んでみました。
  3. インストールパスを変更していない場合、C:\OpenCV2.2配下にインストールされます。

VC++でopencvHelloWorld

…と言っても、opencv関連のインクルードファイルとlibがちゃんと見えるか確認する為のプロジェクトを作成してみただけです。

  1. VisualStudio2005を起動し、プロジェクトの作成を選択
  2. helloworld.cppを開き、opencv関連コードを埋め込んでみる

こんな感じ

#include "stdafx.h"
#include "Form1.h"
#include 
//for use opencv
#include 
#include 
using namespace helloworld;
[STAThreadAttribute]
int main(array ^args)
{
	// コントロールが作成される前に、Windows XP ビジュアル効果を有効にします
	Application::EnableVisualStyles();
	Application::SetCompatibleTextRenderingDefault(false);
	//test cord
	const char* imageFile = "./image/image.jpg";
	IplImage* grayImage = cvLoadImage(imageFile,CV_LOAD_IMAGE_GRAYSCALE);
	// メイン ウィンドウを作成して、実行します
	Application::Run(gcnew Form1());
	return 0;
}
  1. とりあえずビルド
    • 「cv.h」が見つからないエラー
    • インクルードパスの設定をしていないので当たり前
  2. 修正後ビルド
    • リンク時に沢山エラー。opencvのライブラリとリンクしていないので当たり前
  3. 再びビルド
    • 「ERROR: EMM intrinsics not supported in the pure mode!」とエラーが出た
  4. 上記エラーはプロジェクトの共通ランタイムの設定によるものなので修正する。
    • プロジェクトを右クリックし、プロパティを表示
    • [構成プロパティ]⇒[全般]⇒[共通ランタイムサポート]⇒[共通言語ランタイム サポート/clr]に変更(※デフォルトは純粋MSIL共通言語ランタイム(/clr:pure))