python怎么确定坐标_python根据坐标判断两个矩形(横平竖直的)交并比

两个横平竖直的矩形,已知顶点坐标,判断是否相交(肉眼看不算)。

如果相交,相交面积是多少?

两个横平竖直矩形如果相交,可以大致有如下三类相对位置

(由其中一种中心旋转或者轴线翻转得出的视为同一类)

我们可以看出三类的相交部分的四条边是有共同特征的。

左侧边:两个矩形左侧边中靠右的那条边

上 边: 两个矩形上边中靠下的那条边

右 边: 两个矩形右边中靠左的那条边

下 边:两个矩形下边中靠上的那条边

另外就是判断不相交。

已图形处理中坐标的特点,左上角为顶点 0,0向右 为正X,向下为正Y

如果一个矩形的左侧边不小于另一个矩形的右侧边,或者同理 上下两边,都是不相交,否则必定相交

求交集比并集 iou

# 已 左上角为x1,y1 右下角为 x2,y2

def getIou(ax1,ay1,ax2,ay2,bx1,by1,bx2,by2):

# 判断如果没有相交直接返回 0

if ax1 >= bx2 or ax2 <= bx1 or ay1 >= by2 or ay2 <= by1:

return 0

# 交集面积

intersection = (min(ax2,bx2) - max(ax1,bx1)) * (min(ay2,by2) - max(ay1,by1))

# 并集面积 = 两个矩形面积相加 减去 交集面积

and_set = lw * lh + w * h - intersection

return intersection / and_set

无论是像素坐标值 还是归一化的小数,都能直接用

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值