c++ - 为什么 OpenCV 的级联分类器检测会给出太大的输出?

标签 c++ opencv computer-vision

我正在尝试 OpenCV (2.3) 中的对象分类,结果令人惊讶。如下图所示,我正在尝试检测全身,但它给出的区域对于检测到的区域来说太大了。

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

我正在使用以下命令进行检测:cascade.detectMultiScale(temp, Body, 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

最佳答案

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

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

只是一个想法...

关于c++ - 为什么 OpenCV 的级联分类器检测会给出太大的输出?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8425432/

相关文章:

c++ - 如何将 constexpr 指针设置为物理地址

python - Opencv 在 python 2 中给出调整大小错误,但在 python 3 中则没有

python - 变换矩阵

python - 使用Numpy和OpenCV进行图像标准化和归一化

c++ - 如何将成员函数指针传递给 std::function

c++ - 在 C++ 中使用序列化模拟对象进行单元测试

python - 为什么我的numpy文件比使用同一数组生成的PNG大?

c++ - OpenCV - 用于跟踪红色的 HSV 值范围

image - 如何在以编程方式保留文本的同时删除图像中的所有线条和边框?

c++ - 当我不需要 C++ 计算时如何忽略某些输入?