VC++でOpenCV2.3のサンプル(顔認識)を動かすまで

| コメント(0) | トラックバック(0)
OpenCVはバージョンがどんどん上がっていき、
バージョンごとにOpenCVのフォルダ構造まで違ったりします。

なので、まず自分の行った環境を以下に示します。
  • Visual Studio 2010(C/C++)
  • OpenCV-2.3.0-win-superpack.exe(http://sourceforge.net/projects/opencvlibrary/files/opencv-win/2.3/)
OpenCVは新しいものは2.4まで出ていますが、OpenCV-2.3.0ではsuperpackというライブラリ等がコンパイルがされた状態で配布されているので非常に簡単に開発をはじめる事ができるのでおすすめです。

さらに、ネット上のサンプルのコードはバージョンが古いものしかない場合も多いので、今回はopencv.jpにある物体認識のサンプルプログラム(http://opencv.jp/sample/object_detection.html)を動かすことを目的とする



以降、具体的な手順になります。OpenCV-2.3.0-win-superpack.exeをC:\OpenCV に展開したとして話を進めます。適宜読み替えてください。

まず、VisualStudio2010で空のプロジェクトを新規作成します。ここではcvTestというプロジェクト名にしました。
ソリューションエクスプローラーのcvTest右クリックして、プロパティを開きます。
「構成プロパティ→C/C++→全般→追加のライブラリディレクトリ」
「C:\OpenCV\build\include;C:\OpenCV\build\include\opencv」
と入力します。

次に、
「構成プロパティ→リンカー→全般→追加のインクルードディレクトリ」
の欄に
「C:\OpenCV\build\x86\vc10\staticlib」
を指定し,
「構成プロパティ→リンカー→入力→追加の依存ファイル」
に各種ライブラリを指定します.
私は以下のようにしました

comctl32.lib;Advapi32.lib;user32.lib;Gdi32.lib;
libjasperd.lib;opencv_gpu230d.lib;libjpegd.lib;
opencv_haartraining_engined.lib;libpngd.lib;opencv_highgui230d.lib;
libtiffd.lib;opencv_imgproc230d.lib;opencv_calib3d230d.lib;
opencv_legacy230d.lib;opencv_contrib230d.lib;opencv_ml230d.lib;
opencv_core230d.lib;opencv_objdetect230d.lib;opencv_features2d230d.lib;
opencv_video230d.lib;opencv_flann230d.lib;zlibd.lib

次に、ソリューションエクスプローラーのcvTest右クリックしてメニューから「追加→新しい項目」を選択します。新しい項目の追加でC++ファイルを選択し、名前をmain.cppにします。
このできたmain.cppに物体認識(顔認識)のサンプルプログラム(http://opencv.jp/sample/object_detection.html)をコピペする。

また,このプログラムは
「haarcascade_frontalface_default.xml」
を必要とするので,
「C:\OpenCV\opencv\data\haarcascades」
の中から
「haarcascade_frontalface_default.xml」
を探して,プロジェクトのソースコードがあるフォルダと同じフォルダにコピーしてください.
さらに,顔認識する対象の画像が必要になるので,適当な写真を用意して同じフォルダにおいておいてください.

これでプログラムをVisual Studioからデバッグ実行をするのですが,その前にコマンド引数として対象の画像ファイル名を渡す必要があるので,
もう一度,プロジェクトのプロパティを開き「デバッグ→実行時引数」に対象の画像ファイル名を書きます.
これでVisual Studioからデバッグ実行をすると対象の画像に対して顔の部分に丸のついた画像が表示されるはずです.

トラックバック(0)

トラックバックURL: https://onulab.net/mt6/mt-tb.cgi/226

コメントする

プロフィール

おぬし(onuxy)

  • 「引きこもり」+「厨二病」+「コミュ障」の3称号を持つ男
  • 座右の銘は「働いたら負け!!」
  • 日々の生活を楽にするために全力で活動中

このブログ記事について

このページは、naegawaが2012年11月30日 11:19に書いたブログ記事です。

ひとつ前のブログ記事は「最近(v1.57)のTera Stationでのroot権限の取り方」です。

次のブログ記事は「確率モデル検査器PRISMを使ってみる(DTMC)」です。

最近のコンテンツはインデックスページで見られます。過去に書かれたものはアーカイブのページで見られます。

ウェブページ

Powered by Movable Type 6.2.2