python计算iou交并比的代码
时间: 2023-09-25 17:16:24 浏览: 166
计算交并比(IoU)的代码如下:
```python
def iou(box1, box2):
"""
计算两个矩形框的交并比(IoU)
:param box1: 第一个矩形框,格式为 [xmin, ymin, xmax, ymax]
:param box2: 第二个矩形框,格式为 [xmin, ymin, xmax, ymax]
:return: 交并比
"""
# 计算两个矩形框的面积
s1 = (box1[2] - box1[0]) * (box1[3] - box1[1])
s2 = (box2[2] - box2[0]) * (box2[3] - box2[1])
# 计算交集矩形框的左上角和右下角坐标
xmin = max(box1[0], box2[0])
ymin = max(box1[1], box2[1])
xmax = min(box1[2], box2[2])
ymax = min(box1[3], box2[3])
# 如果两个矩形框没有交集,则交集矩形框的面积为0,交并比为0
if xmin >= xmax or ymin >= ymax:
return 0.0
# 计算交集矩形框的面积
intersection = (xmax - xmin) * (ymax - ymin)
# 计算并集矩形框的面积
union = s1 + s2 - intersection
# 计算交并比
iou = intersection / union
return iou
```
使用示例:
```python
# 两个矩形框分别为 [xmin, ymin, xmax, ymax] 格式
box1 = [100, 100, 200, 200]
box2 = [150, 150, 250, 250]
iou_value = iou(box1, box2)
print(iou_value)
```
输出:
```
0.14285714285714285
```
阅读全文