2009年11月7日土曜日

OpenCV 2.0 でサンプルをコンパイルするまで

OpenCV 2.0 でサンプルをコンパイルするまでの流れを、自分用にメモしています。OSは Windows XPです。ここでは C/C++ の開発環境として Visual C++ 2008 Express Edition を使っています。ほかの環境の場合には違う点が出てくると思います。

■必要なソフトウェアのインストール
 まず Visual C++ と OpenCV, CMake をインストールします。

Visual C++ 2008 Express Edition については、以下の URL の情報に従ってインストールします。

http://www.microsoft.com/japan/msdn/vstudio/Express/

時間はかかりますが、難しくはありません。インストール直後は期限が設けられています。登録をすると無期限になるので登録するとよいでしょう。

OpenCV 2.00a もインストールします。
http://sourceforge.net/projects/opencvlibrary/
から、OpenCV-2.0.0a-win32.exe をダウンロードし、ダブルクリックしてインストールを開始します。
こちらも、特に難しい点はありません。

最後に CMake をインストールします。OpenCV のライブラリをコンパイルするのに必要です。
http://www.cmake.org/cmake/resources/software.html
から、cmake-2.6.4-win32-x86.exe をダウンロードし、ダブルクリックしてインストールを開始します。

■OpenCV のライブラリをコンパイル
 次にOpenCVのライブラリをコンパイルします。インストール直後は、デバッグに必要なライブラリが含まれないためです。c:\OpenCV2.0\buildディレクトリを作成しておき、CMake (cmake-gui)を Windows のスタートメニューから起動し、コンパイルするためのファイルを生成します。↓をまねするとよいでしょう。ENABLE_OPENMPのチェックマークをはずします。

http://imagingsolution.blog107.fc2.com/blog-entry-177.html

それから、環境変数 PATH に、c:\OpenCV2.0\build\Release と c:\OpenCV2.0\build\Debug を追加しておきます。Windows の環境変数の設定方法を知らない場合は↓が参考になります。
http://imagingsolution.blog107.fc2.com/blog-entry-133.html

これで準備は完了です。

■プログラムをコンパイルしてみる
 準備が完了したのでサンプルファイルをコンパイルしてみます。基本的には OpenCV Wiki の↓のページに従えばよいです。
http://opencv.willowgarage.com/wiki/VisualC%2B%2B
違いは以下のとおりです:

  • 2.00以降はヘッダファイルが c:\OpenCV2.0\include\opencv 以下にまとめられているので、インクルードディレクトリは、それだけを追加すればよい
  • ライブラリのディレクトリは、c:\OpenCV2.0\build\lib\Releaseまたはc:\OpenCV2.0\build\lib\Debugを指定する(ビルドターゲットのRelease/Debugにあわせて)
  • ターゲットがDebugのときは、xxx.lib ではなく、xxxd.libを指定する

また、上記のページでは、VC++共通の設定でインクルードディレクトリを書くような説明になっていますが、プロジェクトごとに指定しても問題はありません。

参考までに作ったプロジェクトをおいておきます。opencv-test.zipです。ソースは camshiftdemo.c をコピーペーストしています。展開して、opencv-test.sln をダブルクリックし、Visual C++ でソリューションをビルド→実行すれば動くはずです。ただし、作成した環境以外でテストはしていません。

2 件のコメント:

  1. >ターゲットがDebugのときは、xxx.lib ではなく、xxxd.libを指定する

    ここが分からず困っていたので、大変助かりました!

    返信削除
  2. うまくいってよかったですね。お役に立てて何よりです。

    返信削除