Python代码:计算两个矩形框的IOU值
以下是一个简单的IOU(Intersection over Union)计算的Python代码示例:
def calculate_iou(box1, box2):
'计算两个矩形框的IOU(Intersection over Union)
参数:
- box1: 第一个矩形框,格式为 (x1, y1, x2, y2),其中 (x1, y1) 为左上角坐标,(x2, y2) 为右下角坐标
- box2: 第二个矩形框,格式同上
返回值:
- iou: 两个矩形框的IOU值
'
# 计算两个矩形框的坐标
x1, y1, x2, y2 = box1
x3, y3, x4, y4 = box2
# 计算两个矩形框的面积
area1 = (x2 - x1 + 1) * (y2 - y1 + 1)
area2 = (x4 - x3 + 1) * (y4 - y3 + 1)
# 计算相交矩形框的坐标
x5 = max(x1, x3)
y5 = max(y1, y3)
x6 = min(x2, x4)
y6 = min(y2, y4)
# 计算相交矩形框的面积
inter_area = max(0, x6 - x5 + 1) * max(0, y6 - y5 + 1)
# 计算IOU值
iou = inter_area / float(area1 + area2 - inter_area)
return iou
# 示例使用
box1 = (0, 0, 10, 10)
box2 = (5, 5, 15, 15)
iou = calculate_iou(box1, box2)
print('IOU:', iou)
这段代码定义了一个函数 calculate_iou,用于计算两个矩形框的IOU值。在示例中,我们传入两个矩形框的坐标 (0, 0, 10, 10) 和 (5, 5, 15, 15),然后输出计算得到的IOU值。
原文地址: https://www.cveoy.top/t/topic/o6uH 著作权归作者所有。请勿转载和采集!