opencv连通域外接矩形
时间: 2023-08-01 17:13:48 浏览: 247
您可以使用OpenCV中的函数`connectedComponentsWithStats()`来获取连通域的外接矩形。以下是一个示例代码:
```python
import cv2
import numpy as np
# 读取图像
image = cv2.imread("your_image.jpg", cv2.IMREAD_GRAYSCALE)
# 二值化图像
ret, thresh = cv2.threshold(image, 0, 255, cv2.THRESH_BINARY)
# 获取连通域
num_labels, labels, stats, centroids = cv2.connectedComponentsWithStats(thresh, connectivity=8)
# 创建一个空白图像用于绘制外接矩形
output = np.zeros((image.shape[0], image.shape[1], 3), dtype=np.uint8)
# 循环遍历每个连通域
for i in range(1, num_labels):
# 获取连通域的外接矩形坐标
x, y, w, h, area = stats[i]
# 绘制外接矩形
cv2.rectangle(output, (x, y), (x + w, y + h), (0, 255, 0), 2)
# 显示结果图像
cv2.imshow("Connected Components", output)
cv2.waitKey(0)
cv2.destroyAllWindows()
```
在上述代码中,我们首先读取图像并将其转换为灰度图像。然后使用`connectedComponentsWithStats()`函数获取连通域及其统计信息。接下来,我们创建一个空白图像用于绘制外接矩形,并循环遍历每个连通域,获取其外接矩形坐标,最后使用`cv2.rectangle()`函数绘制外接矩形。最后,显示结果图像。
请注意,上述代码中的"your_image.jpg"应替换为您自己的图像文件路径。
阅读全文