import os
import cv2
import numpy as np
def IOU( box1, box2 ):
"""
: box1:[x1,y1,x2,y2]
: box2:[x1,y1,x2,y2]
# todo 1. 说明此函数的功能
2. 修改函数名称和返回值的名字,因为这不是真正的 IOU
"""
width1 = abs(box1[2] - box1[0])
height1 = abs(box1[1] - box1[3]) # 这里y1-y2是因为一般情况y1>y2,为了方便采用绝对值
width2 = abs(box2[2] - box2[0])
height2 = abs(box2[1] - box2[3])
x_max = max(box1[0],box1[2],box2[0],box2[2])
y_max = max(box1[1],box1[3],box2[1],box2[3])
x_min = min(box1[0],box1[2],box2[0],box2[2])
y_min = min(box1[1],box1[3],box2[1],box2[3])
iou_width = x_min + width1 + width2 - x_max
iou_height = y_min + height1 + height2 - y_max
if iou_width <= 0 or iou_height <= 0:
iou = 0
else:
iou_area = iou_width * iou_height # 交集的面积
# box1_area = width1 * height1
box2_area = width2 * height2
iou = iou_area / box2_area # 并集的面积
# if iou <= 0.6:
# iou = False
# else:
# iou = True
return iou
if __name__ == "__main__":
s