Почему обнаружение каскадного классификатора OpenCV дает слишком большой результат? - PullRequest
2 голосов
/ 08 декабря 2011

Я пробую классификацию объектов в OpenCV (2.3), и результаты удивительны. Как показано на моем изображении ниже, я пытаюсь обнаружить полное тело, и оно дает область, слишком большую для обнаруженной области.

Я тренирую объект CascadeClassifier с предоставленными данными haarcascade_fullbody.xml.

Я обнаруживаю с помощью этой команды: cascade.detectMultiScale(temp, bodies, 1.1, 10);

Я рисую прямоугольник так:

Point tl, br;
tl.x = bodies[0].x;
tl.y = bodies[0].y;
br.x = bodies[0].x + bodies[0].width;
br.y = bodies[0].x + bodies[0].height;

cv::rectangle(out, tl, br, cv::Scalar(255, 255, 255), 3);

Почему это не дает хорошее прилегание к объекту? Есть что-то, чего я здесь не хватает? Похоже, что он постоянно дает мне слишком длинный регион.

enter image description here

1 Ответ

4 голосов
/ 08 декабря 2011

Не должно ли br.y = bodies[0].x + bodies[0].height; быть

br.y = bodies[0].y + bodies[0].height;?

Просто идея ...

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...