OpenCV + VC++2008で顔認識してみる

なにやらIntelがステキなライブラリを提供しているとのことなので試してみる

インストール

  • まずここからOpenCV_1.0.exeをダウンロード
  • OpenCV_1.0.exeを実行してインストール
  • pathの追加。C:\Program Files\OpenCV\bin

VC++2008の設定

  • インクルードパス と ライブラリパスを追加する

こちらをみてね

Visual C++ の設定を行う。 Tools > Options > Projects and Solutions > VC++ Directories で以下のディレクトリを追加する。

Include Files:
 C:\Program Files\OpenCV\cv\include
 C:\Program Files\OpenCV\cvaux\include
 C:\Program Files\OpenCV\cxcore\include
 C:\Program Files\OpenCV\otherlibs\highgui
Library Files:
 C:\Program Files\OpenCV\lib
  • プロジェクトのプロパティ>構成プロパティ>全般で 文字セットを「指定なし」にする
    • そうしないと_TCHAR でエラーが出る

サンプルコードのコピペ

ここから、

int
main (int argc, char **argv)
{

以外の部分をまるまるコピペ

サンプル貼り付けただけでは、cvHaarDetectObjects()でアサートする

haarcascade_frontalface_default.xml を指定しているところを

const char *cascade_name = "C:\\Program Files\\OpenCV\\data\\haarcascades\\haarcascade_frontalface_default.xml";

と、フルパスで指定すること

コンパイル

エラーがでなければおめでとう

実行前の準備

  • 顔写真を適当なフォルダに置く。jpgでもpngでもOKみたい。
  • プロジェクトのプロパティ>構成プロパティ>デバッグ でコマンド引数に 顔写真へのパスを指定

実行

DLLがないとか言われたら、pathの設定を見直して、VC++2008を立ち上げ直してみよう

うまく顔に○がついた画がでたらおめでとう!