iou python
时间: 2023-10-15 07:22:50 浏览: 103
您好!对于Python的IOU计算,您可以使用以下代码:
```python
def compute_iou(box1, box2):
# 提取box1的坐标
x1, y1, w1, h1 = box1
# 计算box1的边界
x1_min = x1 - w1 / 2
y1_min = y1 - h1 / 2
x1_max = x1 + w1 / 2
y1_max = y1 + h1 / 2
# 提取box2的坐标
x2, y2, w2, h2 = box2
# 计算box2的边界
x2_min = x2 - w2 / 2
y2_min = y2 - h2 / 2
x2_max = x2 + w2 / 2
y2_max = y2 + h2 / 2
# 计算重叠区域的边界
x_min = max(x1_min, x2_min)
y_min = max(y1_min, y2_min)
x_max = min(x1_max, x2_max)
y_max = min(y1_max, y2_max)
# 计算重叠区域的面积
intersection = max(0, x_max - x_min) * max(0, y_max - y_min)
# 计算两个框的面积
box1_area = w1 * h1
box2_area = w2 * h2
# 计算IOU
iou = intersection / (box1_area + box2_area - intersection)
return iou
```
您可以将两个框的坐标和宽高作为参数传递给`compute_iou`函数,它将返回IOU值。请注意,此代码假设输入的坐标格式为`(x, y, width, height)`。
希望这可以帮助到您!如果您有任何其他问题,请随时提问。
阅读全文