怎么获取contours的所有最小轮廓外接矩形
时间: 2023-10-18 20:04:25 浏览: 106
Opencv绘制最小外接矩形、最小外接圆
要获取轮廓的最小外接矩形,可以使用OpenCV库中的`cv2.minAreaRect()`函数。该函数将给定的轮廓作为参数,并返回一个包围该轮廓的最小外接矩形。
下面是一个示例代码,展示了如何获取轮廓的最小外接矩形:
```python
import cv2
# 假设你已经得到了轮廓 contours
# 创建一个空白图像作为背景
img = np.zeros((500, 500, 3), dtype=np.uint8)
# 绘制轮廓
cv2.drawContours(img, contours, -1, (0, 255, 0), 2)
# 获取所有轮廓的最小外接矩形
rectangles = []
for contour in contours:
# 获取最小外接矩形
rect = cv2.minAreaRect(contour)
rectangles.append(rect)
# 在图像上绘制最小外接矩形
for rect in rectangles:
# 将浮点坐标转换为整数坐标
box = cv2.boxPoints(rect)
box = np.int0(box)
# 绘制矩形
cv2.drawContours(img, [box], 0, (0, 0, 255), 2)
# 显示图像
cv2.imshow("Contours and Minimum Bounding Rectangles", img)
cv2.waitKey(0)
cv2.destroyAllWindows()
```
这段代码首先绘制了所有的轮廓,然后使用`cv2.minAreaRect()`函数获取每个轮廓的最小外接矩形,并将结果存储在`rectangles`列表中。最后,使用`cv2.drawContours()`函数将最小外接矩形绘制在图像上。
请注意,`cv2.minAreaRect()`函数返回的是一个包含矩形中心坐标、尺寸和旋转角度的元组。如果需要绘制矩形,使用`cv2.boxPoints()`函数将矩形转换为四个角点的坐标,然后使用`cv2.drawContours()`函数绘制矩形。
希望这可以帮助到你!如有更多问题,请随时提问。
阅读全文