2014-03-25 2 views
0

현재 OpenCV 2.4.8을 사용하여 얼굴 인식을 시도하고 있습니다. haarcascade_frontalface_alt.xml haarascade 분류자를로드 중입니다. 나는 다음 인수와 함께 detectMultiScale 함수를 사용하고 있습니다 : face_cascade.detectMultiScale (grayscaleFrame, faces, 1.1, 3, CV_HAAR_FIND_BIGGEST_OBJECT).OpenCV 2.4.8에서 가장 큰 얼굴을 찾는 방법은 무엇입니까?

문제는 가장 큰 개체 만 반환하는 것이 아니라는 것입니다. 디버그 모드에서 opencv를 빌드하고 CV_HAAR_FIND_BIGGEST_OBJECT 플래그가 새 버전에서 중복된다는 것을 알았습니다. 누구든지 프레임에서 가장 큰 물체를 감지하는 다른 방법을 말할 수 있습니까?

답변

3

왜 큰 얼굴 감지 어떻게 조치로 표면을 사용하지 않는 것은 : 그것은 좋은 평가를 제공

std::vector<cv::Rect> faces; 
face_cascade.detectMultiScale(grayscaleFrame, faces, 1.1, 3,CV_HAAR_FIND_BIGGEST_OBJECT). 
cv::Rect maxRect; // 0 sized rect 
for(int i=0;i<faces.size();i++) 
    if (faces[i].area() > maxRect.area()) 
     maxRect = faces[i]; 

예를 두 명 이상의 사람이 감지되면 대부분의 경우이 방법은 카메라에 가장 가까운 얼굴을 제공합니다.

+1

괜찮습니다. 내가 알고 싶었던 것은 지표를 지표로 사용하지 않고 가장 큰 물체를 찾는 방법 이었습니까? OpenCV 2.4.8과 함께 제공되는 새로운 분류기를로드 할 때 CV_HAAR_FIND_BIGGEST_OBJECT 플래그가 작동하지 않습니다. –

관련 문제