python多边形并集_找到多个重叠矩形的并集 – OpenCV python

这篇博客介绍了如何在Python中处理多个重叠的边界框,特别是使用OpenCV库来找到这些矩形的并集。通过定义`union`和`intersection`函数,作者探讨了如何迭代矩形列表以合并相交的边界框。最终提供了一个改进的`combine_boxes`函数,利用`itertools.combinations`简化了矩形组合过程。
摘要由CSDN通过智能技术生成

我有几个重叠的边界框,包含一个对象,但它们在某些地方最低限度重叠.作为一个整体,它们包含整个对象,但openCV的groupRectangles函数不会返回包含该对象的框.我有的边框用蓝色显示,我想要返回的边框在这里用红色显示

我想得到只有重叠矩形的联合但不确定如何迭代列表而不组合每个矩形.

我有下面显示的并集和交叉函数,以及由(x y w h)表示的矩形列表,其中x和y是框左上角的坐标.

def union(a,b):

x = min(a[0], b[0])

y = min(a[1], b[1])

w = max(a[0]+a[2], b[0]+b[2]) - x

h = max(a[1]+a[3], b[1]+b[3]) - y

return (x, y, w, h)

def intersection(a,b):

x = max(a[0], b[0])

y = max(a[1], b[1])

w = min(a[0]+a[2], b[0]+b[2]) - x

h = min(a[1]+a[3], b[1]+b[3]) - y

if w<0 or h<0: return () # or (0,0,0,0) ?

return (x, y, w, h)

我的组合功能目前如下:

def combine_boxes(boxes):

noIntersect = False

while noIntersect == False and len(boxes) > 1:

a = boxes[0]

print a

listBoxes &

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值