为什么OpenCV的级联分类器检测会让出太大的输出?

时间:2011-12-08 02:34:26

标签: c++ opencv computer-vision

我正在尝试OpenCV(2.3)中的对象分类,结果令人惊讶。如下图所示,我正在尝试检测一个完整的身体,并且它为检测到的区域提供了一个太大的区域。

我正在使用提供的haarcascade_fullbody.xml数据训练CascadeClassifier对象。

我正在使用此命令检测: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 个答案:

答案 0 :(得分:4)

不应该br.y = bodies[0].x + bodies[0].height;

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

只是一个想法......