我在IOS(iPhone)中使用OpenCV
。我正在使用detectMultiScale
来检测面孔。目前,它检测多个对象。我希望它只检测最大的对象。当我使用detectMultiScale(Image, faces, 1.1, 3, CASCADE_FIND_BIGGEST_OBJECT)
时,它没有任何效果。我该怎么办呢?任何援助将不胜感激。谢谢。
答案 0 :(得分:1)
如果查看OpenCV源代码,可以看到CASCADE_FIND_BIGGEST_OBJECT
无效。查看documentation处的flags
参数,它说' 它不用于新的级联。'。你需要做的是迭代面部并通过查看它们的宽度和高度来获得最大的面部。
代码如下:
detectMultiScale(Image, faces, 1.1, 3);
cv::Rect biggestRect(0,0,0,0);
for(size_t i = 0; i < faces.size(); ++i)
{
cv::Rect rect = faces[i];
if(rect.width > biggestRect.width)
{
biggestRect = rect;
}
}
cv::Mat biggestFace = Image(biggestRect);