python Iou
时间: 2023-10-12 21:05:33 浏览: 89
IOU (Intersection over Union) 是一种用于评估目标检测算法性能的常用指标。
在目标检测中,IOU用于衡量预测边界框和实际边界框之间的重叠程度。IOU的计算方式是将两个边界框的交集面积除以它们的并集面积。
在Python中,可以通过以下代码计算IOU:
```python
def calculate_iou(box1, box2):
# box1和box2分别表示两个边界框的坐标(x, y, w, h)
x1, y1, w1, h1 = box1
x2, y2, w2, h2 = box2
# 计算两个边界框的面积
area1 = w1 * h1
area2 = w2 * h2
# 计算交集的坐标
x_intersection = max(x1, x2)
y_intersection = max(y1, y2)
w_intersection = min(x1 + w1, x2 + w2) - x_intersection
h_intersection = min(y1 + h1, y2 + h2) - y_intersection
# 如果两个边界框没有交集,则IOU为0
if w_intersection <= 0 or h_intersection <= 0:
return 0.0
# 计算交集的面积
intersection = w_intersection * h_intersection
# 计算并集的面积
union = area1 + area2 - intersection
# 计算IOU
iou = intersection / union
return iou
```
使用上述代码,你可以传入两个边界框的坐标,然后计算它们之间的IOU值。
阅读全文