我正在使用haar级联分类器对视频流执行行人检测,我正在尝试通过{{1}中的参数minSize
和maxSize
来缩小检测范围来优化代码功能:
detectMutliScale
似乎fullbodyCascade.detectMultiScale(image, found_pedestrian, 1.1, 3, 0, Size(20,60), Size(50,100));
参数是唯一被考虑的参数,而大小超过minSize
的对象仍然被检测到。
有没有人遇到过这个问题?
提前感谢您的帮助
Ilou
答案 0 :(得分:1)
我使用的haar cascadeclassifier是一个旧的格式文件,与此格式相关的函数似乎没有考虑maxSize。因此,我通过添加:
修改了haar.cpp if( winSize.width > maxSize.width || winSize.height > maxSize.height ) break;
在临近之前。 1202:
if( winSize.width < minSize.width || winSize.height < minSize.height )
{
if( findBiggestObject )
break;
continue;
}
可能有一种更聪明的方法可以解决这个问题(使用标志......?)但是无论如何,它现在工作正常。