首页 文章

如何在OpenCV 2.4.8中找到最大的面孔?

提问于
浏览
0

我目前正在尝试使用OpenCV 2.4.8进行人脸检测 . 我正在加载haarcascade分类器:haarcascade_frontalface_alt.xml . 我正在使用带有以下参数的detectMultiScale函数:face_cascade.detectMultiScale(grayscaleFrame,faces,1.1,3,CV_HAAR_FIND_BIGGEST_OBJECT) .

问题是它不会像它应该做的那样只返回最大的对象 . 我在调试模式下构建opencv,发现CV_HAAR_FIND_BIGGEST_OBJECT标志在新版本中是多余的 . 谁能告诉我其他方法检测框架中的最大物体?

1 回答

  • 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];
    

    它给出了良好的估计,当检测到多个人时,这种方法在大多数情况下会为我们提供最接近相机的脸部 .

相关问题