Прямоугольник не вокруг обнаруженной пары глаз

Я использую 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);

}

}

Может кто-нибудь помочь, пожалуйста? Спасибо

3

Решение

Вы ищете глаза в диапазоне от 0 в face->width и из 0 в face->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);
1

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]