OpenCV2.4をWindowsにインストールする方法

絵の具

 OpenCVは画像処理のためのライブラリです。ここでは、Visual C++でOpenCVが使えるように環境設定について解説します。

ダウンロード

はじめに

>>OpenCV2.4のダウンロードページ

より、OpenCVをダウンロードします。 OpenCV-2.4.0.exeをクリックします。そして、ファイルを保存を選択しましょう。

あとはダウンロードが終わるまで待ちましょう。

インストール

では、ダウンロードしたファイルOpenCV-2.4.0.exeを実行します。 保存先はどこでもいいのですが、説明をしやすくするため「C:¥」にします。

あとはインストールが完了するまでまちましょう。 インストールが完了すると「C:¥」にopencvというファイルができています。 確認しておきましょう。

Pathの設定

いまの状態では、パソコンがOpenCVのdllファイルを認識していないので使えません。 そこで、

パソコンがOpenCVを認識できるように、OpenCVのdllファイルがある場所を教える必要があります。

それがPathの設定です。 スタート->コンピュータを右クリック->プロパティ を選択します。そして、システムの詳細設定を選択します。

詳細設定の環境変数を選択します。

Pathを選択して、編集を押します。

そして、変数値の最後に

;C:\opencv\build\x86\vc10\bin;C:\opencv\build\x64\vc10\bin

と追加します。

今回の場合は、32bitOSで、Visual C++2010で使用する予定なので、

;C:\opencv\build\x86\vc10\bin

というファイルと

C:\opencv\build\x64\vc10\bin

というファイルをPathに設定しています。Visual Studio 2008の場合は、vc10ではなくvc9を使用しましょう。2012ならvc11です。

x86は32bitでx64は64bitプログラミング用です。

プログラムを作ってみる

レナというサンプル画像を表示するコンソールプログラムを作ります。 では、Visual C++Express EditionでWin32コンソールアプリケーションを作ります。

そして、完了を押します。

インクルード用のパスの設定

OpenCVのインクルードファイルのありかを教えるための設定をします。 メニューから「プロジェクト->プロパティ」を選択します。 構成をすべての構成にして、C/C++の全般にします。 そして、追加のインクルードディレクトリに「C:\opencv\build\include」と設定します。

あとは以下のようにプログラムを組んで実行しましょう。

#include "stdafx.h"
#include "opencv2\opencv.hpp"

#ifdef _DEBUG
    //Debugモードの場合
    #pragma comment(lib,"C:\\opencv\\build\\x86\\vc10\\lib\\opencv_core240d.lib")
    #pragma comment(lib,"C:\\opencv\\build\\x86\\vc10\\lib\\opencv_imgproc240d.lib")
    #pragma comment(lib,"C:\\opencv\\build\\x86\\vc10\\lib\\opencv_highgui240d.lib")
    #pragma comment(lib,"C:\\opencv\\build\\x86\\vc10\\lib\\opencv_objdetect240d.lib")
    #pragma comment(lib,"C:\\opencv\\build\\x86\\vc10\\lib\\opencv_contrib240d.lib")
    #pragma comment(lib,"C:\\opencv\\build\\x86\\vc10\\lib\\opencv_features2d240d.lib")
    #pragma comment(lib,"C:\\opencv\\build\\x86\\vc10\\lib\\opencv_flann240d.lib")
    #pragma comment(lib,"C:\\opencv\\build\\x86\\vc10\\lib\\opencv_gpu240d.lib")
    #pragma comment(lib,"C:\\opencv\\build\\x86\\vc10\\lib\\opencv_haartraining_engined.lib")
    #pragma comment(lib,"C:\\opencv\\build\\x86\\vc10\\lib\\opencv_legacy240d.lib")
    #pragma comment(lib,"C:\\opencv\\build\\x86\\vc10\\lib\\opencv_ts240d.lib")
    #pragma comment(lib,"C:\\opencv\\build\\x86\\vc10\\lib\\opencv_video240d.lib")
#else
    //Releaseモードの場合
    #pragma comment(lib,"C:\\opencv\\build\\x86\\vc10\\lib\\opencv_core240.lib")
    #pragma comment(lib,"C:\\opencv\\build\\x86\\vc10\\lib\\opencv_imgproc240.lib")
    #pragma comment(lib,"C:\\opencv\\build\\x86\\vc10\\lib\\opencv_highgui240.lib")
    #pragma comment(lib,"C:\\opencv\\build\\x86\\vc10\\lib\\opencv_objdetect240.lib")
    #pragma comment(lib,"C:\\opencv\\build\\x86\\vc10\\lib\\opencv_contrib240.lib")
    #pragma comment(lib,"C:\\opencv\\build\\x86\\vc10\\lib\\opencv_features2d240.lib")
    #pragma comment(lib,"C:\\opencv\\build\\x86\\vc10\\lib\\opencv_flann240.lib")
    #pragma comment(lib,"C:\\opencv\\build\\x86\\vc10\\lib\\opencv_gpu240.lib")
    #pragma comment(lib,"C:\\opencv\\build\\x86\\vc10\\lib\\opencv_haartraining_engined.lib")
    #pragma comment(lib,"C:\\opencv\\build\\x86\\vc10\\lib\\opencv_legacy240.lib")
    #pragma comment(lib,"C:\\opencv\\build\\x86\\vc10\\lib\\opencv_ts240.lib")
    #pragma comment(lib,"C:\\opencv\\build\\x86\\vc10\\lib\\opencv_video240.lib")
#endif

int _tmain(int argc, _TCHAR* argv[])
{
	//画像データの読込
    IplImage* src = cvLoadImage("C:\\opencv\\samples\\c\\lena.jpg", CV_LOAD_IMAGE_ANYDEPTH | CV_LOAD_IMAGE_ANYCOLOR);
    if (src == NULL){
        return 0;
    }
    //表示ウィンドウの作成
    cvNamedWindow("画像");
    //画像の表示
    cvShowImage ("画像", src);
    //キー入力待ち
    cvWaitKey (0);
    //ウィンドウの削除
    cvDestroyWindow("画像");
    //画像データの解放
    cvReleaseImage(&src);
	return 0;
}

うまく実行できたでしょうか?うまくいかなかった場合は、パスの設定・リンク・インクルードの設定を見直してみてください。リンクのXXX240.libの240もバージョンによって変わるのでディレクトリをしっかりチェックしておきましょう。

著者:安井 真人(やすい まさと)