openCVで遊んでみました。

顔検出でお馴染みのOpenCVを勉強しました。

以下2つが非常に参考になりました。
http://www.intel.com/technology/computing/opencv/index.htm
http://www.ai.cs.scitec.kobe-u.ac.jp/~izutani/index.php?OpenCV#x711d4fa

facedetect.c を少しだけ改造してfacerect.c というものを作りました。
これは写真から、顔の位置のレクトをCVSで返す物です。

facedetect.cの
61行目 コメントアウト
//cvNamedWindow( "result", 1 );

166行目をコメントアウト
//printf( "detection time = %gms\n", t/x*scale),cvRound(r->y*scale),cvRound(r->width*scale),cvRound(r->height*scale">*1;

179行目辺り コメントアウト
//cvShowImage( "result", img );

すると 以下のように座標一覧が出ます。
x,y,w,h
x,y,w.h

8月のライブラリー akJ Friendsに追加してみたいです。
ただ、目鼻ではなくて、輪郭で検出しているぽいので、精度が若干気になりました。
でも学習させるほどのスキルがまだありません。

*1:double)cvGetTickFrequency()*1000.) ); 176行目 cvCircle( img, center, radius, colors[i%8], 3, 8, 0 )の下 printf("%d,%d,%d,%d\n",cvRound(r->x*scale),cvRound(r->y*scale),cvRound(r->width*scale),cvRound(r->height*scale