cv2.boundingRect返回的矩形框合并
时间: 2023-06-13 10:05:35 浏览: 104
如果你有多个矩形框,并且想要将它们合并成一个包围它们所有的大矩形框,可以使用以下步骤:
1. 定义一个空的列表用于存储所有矩形框的坐标。
2. 遍历所有的矩形框,将它们的坐标放入列表中。
3. 使用 cv2.boundingRect 函数计算包含所有矩形框的最小矩形框的坐标和大小。
4. 根据计算得到的最小矩形框的坐标和大小,绘制出这个矩形框。
以下是一个示例代码:
```python
import cv2
rectangles = [(10, 10, 50, 50), (30, 30, 70, 70), (60, 60, 100, 100)]
# 定义一个空的列表用于存储所有矩形框的坐标
points = []
# 遍历所有的矩形框,将它们的坐标放入列表中
for rect in rectangles:
x, y, w, h = rect
points.append((x, y))
points.append((x + w, y + h))
# 使用 cv2.boundingRect 函数计算包含所有矩形框的最小矩形框的坐标和大小
x, y, w, h = cv2.boundingRect(points)
# 根据计算得到的最小矩形框的坐标和大小,绘制出这个矩形框
img = cv2.imread('image.jpg')
cv2.rectangle(img, (x, y), (x + w, y + h), (0, 255, 0), 2)
cv2.imshow('image', img)
cv2.waitKey(0)
cv2.destroyAllWindows()
```
在这个示例中,我们首先定义了一个包含三个矩形框的列表。然后,我们遍历这个列表,将每个矩形框的左上角和右下角坐标放入一个新的列表中。接着,我们使用 cv2.boundingRect 函数计算出包含所有矩形框的最小矩形框的坐标和大小。最后,我们使用 cv2.rectangle 函数绘制出这个最小矩形框。
阅读全文