矩形不在检测到的眼睛对周围

时间:2014-03-03 08:36:00

标签: c++ opencv feature-detection haar-classifier

我使用的是opencv 2.4.2和c ++。关于检测眼睛对的矩形我有一个小问题。矩形不会出现在眼睛对周围,而是出现在检测到的面部矩形之外。我想我可能没有正确的参数。

这是一段代码

for(int i=0;i<faces.size();i++){

        rectangle(frame,faces[i],Scalar(255,0,0),1,8,0);

        Mat face  = frame(faces[i]);
        cvtColor(face,face,CV_BGR2GRAY);
        imwrite("C:/Users/DELL/Documents/Visual Studio 2010/Projects/Haarcascade/Haarcascade/fot.jpg",face);
        vector<Rect> eyes;
        eye.detectMultiScale(face,eyes);

        for( size_t j = 0; j < eyes.size(); j++ ){

            rectangle(frame,eyes[i],Scalar(255,0,0),4,8,0);

        }

}

有人可以帮忙吗?谢谢

1 个答案:

答案 0 :(得分:1)

您正在寻找范围从0face->width以及从0face->height的眼睛,因此您可以获得相对于面部边界的眼睛坐标,然后您绘制注视原始框架。你需要在框架中添加面部坐标,如下所示:

Rect r(faces[i].x + eyes[i].x, faces[i].y + eyes[i].y, eyes[i].width,eyes[i].height );
rectangle(frame,r,Scalar(255,0,0),4,8,0);