I am Charmie

メモとログ

OpenCV 2.2 with Visual Studio 2010

  • Intel TBB (Threading Building Blocks)のインストール
    Multi coreを使うためのライブラリ?
    Download/Stable versionのページから最新のバージョン(tbb30_20110315oss)を選ぶ.
    http://threadingbuildingblocks.org/file.php?fid=77

    該当するOSのファイル(tbb30_20110315oss_win.zip)をダウンロード
    zipを解凍して適当な場所に保存.
    \bin\の中に二つのディレクトリ\ia32|intel64\があり,それぞれ32bit用と64bit用.
    \vcmt|vc8|vc9|vc10\と4つのディレクトリがあり,vcmtは知らないけど,vc8,9,10はそれぞれVisual Studio2005,2008,2010に対応している.
    適切なディレクトリに保存されているdllやlibをVisual Studioから参照すれば機能が使えるみたい.
    ファイルの参照方法
    1. Visual Studioの設定による参照
    TBBのディレクトリを環境変数でTBB30_INSTALL_DIRと設定すると,Visual Studio
    実行可能ファイル: $(TBB30_INSTALL_DIR)%\bin\ia32\vc10
    インクルード: $(TBB30_INSTALL_DIR)%\include
    ライブラリ: $(TBB30_INSTALL_DIR)%\lib\ia32\vc10
    と設定し,
    %TBB30_INSTALL_DIR%\bin\ia32\vc10
    へのパスを通せばOK(これは,Visual Studio 2010 32bit版の例).
    2. ファイルコピーによる参照
    C:\Windows\System32\にdllをコピーする.

    Eigenのインストール
    C++用の線型演算ライブラリ
    最新のバージョン(Eigen3)を選ぶ.
    http://eigen.tuxfamily.org/index.php?title=Main_Page#Download

    zipを解凍して適当な場所に保存.
    Eigenのディレクトリを環境変数でEIGEN_DIRと設定すると,Visual Studio
    インクルード: $(EIGEN_DIR)
    と設定し,
    %EIGEN_DIR%
    へのパスを通せばOK.
    ※ なぜかVisual Studioの設定で環境変数EIGEN_DIRが参照できないので,Eigenのディレクトリだけ絶対参照する.l
    実際に使う時のコードは,以下のようになっており,%EIGEN_DIR%\Eigen\ディレクトリ内の
    というファイル?に関数の実態とかが書いてあるっぽい.

    CUDAのインストール
    CUDA ToolKit, GPU Computing SDK code samples, NVIDIA Performance Primitives (NPP) libraryをインストール.
    http://developer.nvidia.com/object/cuda_3_2_downloads.html
    ・CUDA Toolkit: cudatoolkit_3.2.16_win_32.msi
    GPU Computing SDK code samples: gpucomputingsdk_3.2.16_win_32.exe
    NVIDIA Performance Primitives (NPP) library: npp_3.2.16_win_32.zip
    環境変数にNPPのディレクトリNPP_ROOT_DIR=C:\Program Files\npp_3.2.16_win_32\SDKを作成し,実行ファイルが保存されているディレクトリへのパスを追加
    %NPP_ROOT_DIR%\common\npp\bin
    Visual Studioで以下の設定
    実行可能ファイル
    $(CUDA_BIN_PATH)
    $(NPP_ROOT_DIR)\common\npp\bin
    インクルードファイル
    $(CUDA_INC_PATH)
    $(NVSDKCOMPUTE_ROOT)\C\common\inc
    $(NVSDKCOMPUTE_ROOT)\shared\inc
    $(NPP_ROOT_DIR)\common\npp\include
    ライブラリファイル
    $(CUDA_LIB_PATH)
    $(NVSDKCOMPUTE_ROOT)\C\common\lib
    $(NVSDKCOMPUTE_ROOT)\shared\lib
    $(NPP_ROOT_DIR)\common\npp\lib

    OpenCVのビルド
    Eigen3を使う場合,ソースコードを編集しないといけない.
    \OpenCV-2.2.0\modules\features2d\src\matchers.cpp

    #include
    となっている部分を
    #include
    と編集する.
    1. CMakeを使ってビルド用のslnファイルを作成
    1.1. CMake起動
    Where is the source code: zipを解凍した\OpenCV-2.2.0\ディレクトリの絶対パス
    Where to build the binaries: \OpenCV-2.2.0\build\
    1.2. インストールオプションの設定
    Configureボタンを押す.
    設定でまずい所があると真ん中のビューが赤くなる.
    設定をちょいちょい変える.
    ビルドしたくないものに関してはチェックをはずしたり,パス設定がうまくできていないものがあれば,手動で設定する.
    1.3. slnファイルの作成
    Generateボタンを押す.
    Generating doneと表示されればOK.

    2. Visual Studioでビルド
    Build->Batch Build
    ALL_BUILD, INSTALLをそれぞれDebugとReleaseで計4個選択したらBuildボタンを押す.
    3. OpenCVの設定
    OpenCVディレクトリを示す環境変数OPENCV=C:\Program Files\OpenCV-2.2.0を作成し,パスを
    %OPENCV%\build\bin\Debug
    %OPENCV%\build\bin\Release
    に通す.
    作成したdllやlibが保存されているディレクトリへのリンクを貼る.
    実行可能ファイル
    $(OPENCV)\build\bin\Debug
    $(OPENCV)\build\bin\Release
    インクルードファイル
    $(OPENCV)\include
    $(OPENCV)\modules\calib3d\include
    $(OPENCV)\modules\contrib\include
    $(OPENCV)\modules\core\include
    $(OPENCV)\modules\features2d\include
    $(OPENCV)\modules\ffmpeg
    $(OPENCV)\modules\flann\include
    $(OPENCV)\modules\gpu\include
    $(OPENCV)\modules\haartraining
    $(OPENCV)\modules\highgui\include
    $(OPENCV)\modules\imgproc\include
    $(OPENCV)\modules\legacy\include
    $(OPENCV)\modules\ml\include
    $(OPENCV)\modules\objdetect\include
    $(OPENCV)\modules\traincascade
    $(OPENCV)\modules\video\include
    ライブラリファイル
    $(OPENCV)\build\lib\Debug
    $(OPENCV)\build\lib\Release

    これで終わりー.
    あとは,適宜hファイルやlibファイルをロードすればいいはず.
    #include
    #pragma comment(lib, "opencv_core220d.lib")