OpenCV 如何对矩形进行分组
我想请教一下,怎么在Python中使用opencv的group rectangles函数,具体内容可以在这里找到。
我现在用两个haar级联来检测图像中的物体,但我想把这些矩形框合并在一起。我猜想groupRectangles就是用来做这个的。
cv2.groupRectangles(rectList, groupThreshold, eps, weights, levelWeights)
我在想,rectList是不是由cv2.cascade.detectMultiScale()返回的结果?另外,我不太明白weights和levelWeights是什么,也不知道它们的用途。如果有人能解释一下,或者告诉我在哪里可以找到相关信息,我会非常感激,因为我在文档里找不到。
谢谢大家的帮助 :-)
1 个回答
3
也许在这段时间里有什么变化,但根据你提供的链接,定义是这样的:
cv2.groupRectangles(rectList, groupThreshold[, eps]) → rectList, weights
所以没错,rectList
是一个矩形的列表。在你的情况下,你会使用由 cv2.cascade.detectMultiScale()
返回的那个列表。可选的 eps
控制着两个矩形在位置和大小上需要有多相似才能合并,而 groupThreshold
则表示至少需要多少个矩形才能合并成一个,才能保留这个合并后的矩形。
你会得到一个新的矩形列表,以及每个矩形的权重。我猜这个权重反映了有多少个矩形被合并,以及它们之间的相似程度。