xiangze's sparse blog

機械学習、ベイズ統計、コンピュータビジョンと関連する数学について

Visual C++ 2010 Express edition & Win7 64bit でOpenCV 2.4.*の特徴点検出を使う

ブログ等で既にまとめている方が多いですが、個人的メモもかねて記載します。

OpenCVのビルドを行った後 OpenCVを呼び出す側のプロジェクトでの設定

達成できた事項と条件

SURFによる特徴点抽出のサンプルプログラムをコンパイル、実行可能とする。表記はVisual C++ 2010 Express edition日本語版のもの。

プロジェクトの作成

新規作成、プロジェクトでWin32コンソールアプリケーションを選択する。
以後はCLIは使わない前提で行く。

DLLの設定

Windows環境変数の"Path"に
(OpenCVのディレクトリ)\build\x64\vc10\bin
を追加する。

64bit設定

ソリューションのプロパティー(ソリューションエクスプローラで右クリックして表示、選択するで構成マネージャーを選択、プラットフォームをx64とする。新規作成でx64を選択し、設定のコピー元をWin32とするとよい。
"構成プロパティー"の"全般","プラットフォームツールセット"をWindows7.1SDKに選択

読み込むヘッダファイル

ソースコードのinclude部分を以下のように書き換える。

#include "opencv/cv.h"
#include "opencv/highgui.h"
#include "opencv2/nonfree/nonfree.hpp"

features2dは特徴点用
nonfreeはSIFT,SURFなどオープンでないライセンスのアルゴリズム実装。以下同様

インクルードパスの設定

プロジェクトのプロパティー(ソリューションエクスプローラで右クリックして表示、選択する)で
"C/C++"の"追加のインクルードディレクトリ"に
(OpenCVのディレクトリ)\build\include
を入力

ライブラリパスの設定

プロジェクトのプロパティー(ソリューションエクスプローラで右クリックして表示、選択する)で
"リンカー"の"全般","追加のライブラリディレクトリ"に
(OpenCVのディレクトリ)\build\x64\vc10\lib

ライブラリの設定

プロジェクトのプロパティー(ソリューションエクスプローラで右クリックして表示、選択する)で
"リンカー"の"追加の依存ファイル"に
opencv_core24?.lib
opencv_imgproc24?.lib
opencv_highgui24?.lib
opencv_objdetect24?.lib
opencv_features2d24?.lib
opencv_nonfree24?.lib
を設定(Rlease版ライブラリの場合?はマイナーバージョン、debug版の場合末尾は24?d.lib)

その他注意点(トラブルシューティング)
  • imreadで画像が読み込めない…?

Release版のライブラリをDebugモードでコンパイルして使用しようとすると画像が読み込めないのでDebug版を使うようにする。
参考,情報ソース

  • 実行時にtbb_debug.dllが無いといわれる

http://threadingbuildingblocks.org/ver.php?fid=171
から
tbb30_20110427oss_win.zip
をダウンロード、解凍してパスの通ったところにおく。
参考,情報ソース