记录小辣鸡的一次失败的编程

IOU现场编写,当时想法是用大的面积减去两个小的面积,但是编写起来很麻烦,考完了想起来可以用两个框的长相加再减去图像并集的宽,得到的就是交集的长度,避免了两个框位置的关系引起的不必要麻烦,即

同理纵坐标也可得到

得到交集长宽后即可算出交集的面积,而并集的面积就是两个面积相加再减去并集的面积

def iou(bbox1,bbox2):
    x_max = max(bbox1[2],bbox2[2])
    x_min = min(bbox1[0],bbox2[0])
    x =x_max - x_min

    x_1 = bbox1[2] - bbox1[0]
    x_2 = bbox2[2] - bbox2[0]

    x_i = max(0,x_2 +x_1 -x)

    y_max = max(bbox1[3],bbox2[3])
    y_min = min(bbox1[1],bbox2[1])
    y =y_max - y_min

    y_1 = bbox1[3] - bbox1[1]
    y_2 = bbox2[3] - bbox2[1]

    y_i =max(0, y_2 + y_1 -y)

    i = x_i * y_i

    arce1 = x_1 * y_1
    arce2 = x_2 * y_2

    u = arce1 + arce2 - i

    return  i / u
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值