赞
踩
# 以左上角为坐标原点,box1代表第一个矩形的左上角坐标和右下角坐标 # box2代表第二个矩形的左上角坐标和右下角坐标。 def get_IOU(box1, box2): x1 = box1[2]-box1[0] # 第一个矩形长 x2 = box2[2]-box2[0] # 第二个矩形长 y1 = box1[3]-box1[1] # 第一个矩形宽 y2 = box2[3]-box2[1] # 第二个矩形宽 x_range = max(box1[0], box1[2], box2[0], box2[2]) - min(box1[0], box1[2], box2[0], box2[2]) # 两个矩形长度范围 y_range = max(box1[1], box1[3], box2[1], box2[3]) - min(box1[1], box1[3], box2[1], box2[3]) # 两个矩形宽度范围 x_leng = x1 + x2 - x_range # 重叠长度 y_leng = y1 + y2 - y_range # 重叠宽度 if x_leng < 0 or y_leng < 0: return 0 inter_area = x_leng * y_leng union_area = x1 * y1 + x2 * y2 - inter_area iou = inter_area / union_area print(x_leng, y_leng) print(inter_area, union_area) return iou
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。