Last-modified: 2011-12-26 (月) 01:24:44
OpenCV/インストール

概要

コンピュータビジョンライブラリであるOpenCVをインストールします。
TBBによる並列化、高速化を利用したいため、ソースからビルドする方法を選択しました。
カスタマイズの必要がない場合は、バイナリ版パッケージを利用することも可能です。


今回は[D:\]に展開し、ビルドを行ないます。
なお検証マシンはx64ですが、今回はx86用ライブラリをビルドします。
x64用ライブラリも一部の手順を置き換えるだけでビルド可能です。

方法

  1. OpenCVの最新ソースをダウンロードし、[D:\]に解凍します。
    http://sourceforge.net/projects/opencvlibrary/files/
    WS000000.PNG
  2. TBBの最新ソースをダウンロードし、[D:\]に解凍します。(既にあれば不要です)
    http://www.threadingbuildingblocks.org/file.php?fid=77
    WS000001.PNG
  3. CMakeの最新インストーラーをダウンロードし、インストールします。(既にあれば不要です)
    http://www.cmake.org/cmake/resources/software.html
    WS000003.PNG
  4. CMakeを起動します。
    ソース「<OpenCV解凍先>」、出力先「<OpenCV解凍先>/build」とし、[Configure]を選択します。
    WS000011.PNG
  5. ビルド環境を選択します。
    今回はVS2008でx86版をビルドするので、このようにしました。
    x64版をビルドする場合は、ここで[* Win64]という版を選択します。
    WS000012.PNG
  6. [BUILD_EXAMPLES(サンプルのビルド)]と[WITH_TBB(TBB有効化)]を追加しました。
    再び[Configure]を選択します。
    WS000013.PNG
  7. TBBのincludeディレクトリパスを[TBB_INCLUDE_DIR]へ入力します。
    再び[Configure]を選択します。
    WS000014.PNG
  8. TBBのlibディレクトリパスを訊いてきますが、既に入力されています。
    再び[Configure]を選択します。
    x64版をビルドする場合、今回のケースなら「D:/tbb30_20100406oss/lib/intel64/vc9」とします。
    WS000015.PNG
  9. 確認項目が消えたので、[Generate]を選択します。
    WS000016.PNG
  10. [<OpenCV解凍先>\build\OpenCV.sln]をVS2008で起動し、[ビルド] - [ビルドバッチ]を選択します。
    WS000017.PNG
  11. [ALL_BUILD]と[INSTALL]のDebugビルド、Releaseビルドにチェックを付けて、ビルドします。
    WS000018.PNG
  12. エラーが0件で終了したことを確認し、次の手順へ進みます。
  13. システムの環境変数に、OpenCVのbinと、TBBのbinパスを追加します。
    今回のケースでは、以下のパスを追加しました。
    D:\OpenCV-2.1.0\build\bin\Release
    D:\OpenCV-2.1.0\build\bin\Debug
    D:\tbb30_20100406oss\bin\ia32\vc9
    WS000019.PNG
  14. 再びVisual Studioへ移り、[ツール] - [オプション]を選択します。
    WS000020.PNG
  15. includeディレクトリの追加を行ないます。
    Win32ビルドで使用するので、プラットフォームはWin32で設定します。
    WS000021.PNG
  16. libディレクトリの追加を行ないます。
    Win32ビルドで使用するので、プラットフォームはWin32で設定します。
    WS000022.PNG
  17. 以上で設定終了です。

使用方法

  1. 必要なヘッダをインクルードし、以下のようなマクロで必要なライブラリを指定することにより、OpenCVをC/C++コード上にて利用できるようになります。
    Everything is expanded.Everything is shortened.
      1
      2
      3
      4
      5
      6
      7
      8
      9
     10
     11
    
     
     
     
     
     
     
     
     
     
     
     
    
    #ifdef _DEBUG
        #pragma comment(lib,"cv210d.lib")
        #pragma comment(lib,"cxcore210d.lib")
        #pragma comment(lib,"cvaux210d.lib")
        #pragma comment(lib,"highgui210d.lib")
    #else
        #pragma comment(lib,"cv210.lib")
        #pragma comment(lib,"cxcore210.lib")
        #pragma comment(lib,"cvaux210.lib")
        #pragma comment(lib,"highgui210.lib")
    #endif

検証時の環境

参考