Programming/OpenCV

Haar Face Detection

매직블럭 2013. 4. 2. 19:25

HaarDetectObjects 함수를 이용하여 얼굴 검출하는 기능

실행하는 폴더내에 xml 파일이 있어야 거기서 특징점을 가져오고

그 특징에 해당하는 영역을 검출해서 Rectangle을 그려준다

 

 CvHaarClassifierCascade* cascade;
 CvMemStorage*   storage;
 char* filename = "haarcascade_frontalface_alt.xml";
 cascade = (CvHaarClassifierCascade*)cvLoad(filename,0 ,0 ,0);
 storage = cvCreateMemStorage(0);

  CvSeq* faces = cvHaarDetectObjects(image2, cascade, storage, 2.0, 3, 0, cvSize(40,40) );

  for(i=0; i< (faces ? faces->total : 0); i++)
  {
   CvRect* r = (CvRect*) cvGetSeqElem(faces, i);
   cvRectangle(image2, cvPoint(r->x, r->y), cvPoint(r->x + r->width , r->y + r->height), CV_RGB(0, 255, 0), 2, 8, 0);
  }

haarcascade_frontalface_alt.xml