opencv求两个矩形的iou
时间: 2023-11-17 17:04:55 浏览: 314
计算两个矩形之间的IOU面积和重叠率
5星 · 资源好评率100%
在 OpenCV 中,我们可以使用 `cv2.intersectUnion()` 函数来计算两个矩形的 IoU(Intersection over Union)。
以下是一个示例代码:
``` python
import cv2
# 定义两个矩形
rect1 = [50, 50, 100, 100] # [x, y, w, h]
rect2 = [70, 70, 120, 80]
# 计算交集和并集
intersection = cv2.intersectConvexConvex(cv2.boxPoints(rect1), cv2.boxPoints(rect2))
union = cv2.contourArea(cv2.convexHull(cv2.vconcat([cv2.boxPoints(rect1), cv2.boxPoints(rect2)])))
# 计算 IoU
iou = intersection / union
print(iou)
```
在上面的代码中,我们首先定义了两个矩形。然后,我们使用 `cv2.intersectConvexConvex()` 函数计算它们的交集,使用 `cv2.convexHull()` 函数计算它们的并集,最后计算 IoU 值。
请注意,`cv2.boxPoints()` 函数用于将矩形转换为其对应的四个顶点坐标,`cv2.vconcat()` 函数用于垂直拼接两个矩形的顶点坐标,`cv2.contourArea()` 函数用于计算一个轮廓的面积。
阅读全文