使用OpenCV合并重叠的矩形

时间:2018-09-13 16:48:37

标签: python opencv machine-learning computer-vision

我同时在OpenCV中使用两种Haar级联算法(正面和轮廓)来改善人脸检测。

很遗憾,该检测无法正常工作,我也不知道如何解决。返回值为2(在具有5张面孔的图片上,通常可以检测到),并且所有矩形都消失了。

这是预期的结果(没有重叠的矩形):

image

This is the original picture (and also the result.jpg) if you want to make your own test.

这是代码:

countOfRowsFiltered

2 个答案:

答案 0 :(得分:0)

openCV函数groupRectangles需要3个输入。

1)rectList:矩形向量

2)groupthreshold:最小矩形数减去1

3)eps:将矩形合并为一组的矩形之间的相对差

您的代码:

   result=cv2.groupRectangles(combined_list,1,0.85)

在您的代码中,将groupthreshold参数设置为1,该参数拒绝所有具有一个矩形的聚类。将此参数设置为0,您将获得所需的结果。

解决方案:

   result=cv2.groupRectangles(combined_list,0,0.85)

详细说明如下: (https://docs.opencv.org/3.4/d5/d54/group__objdetect.html#ga3dba897ade8aa8227edda66508e16ab9

答案 1 :(得分:0)

非最大抑制算法用于解决检测结果重叠的问题。 pyimagesearch上有一篇非常不错的文章,并提供了代码,可帮助您朝正确的方向前进。