对一张图像进行阈值分割处理后,画出处理后的图片中的所有的连通域的外接矩形,并输出矩形的长、宽、面积
时间: 2024-05-12 19:20:27 浏览: 20
以下是Python代码实现:
```python
import cv2
# 读取图像并进行灰度化和二值化处理
img = cv2.imread('image.jpg')
gray = cv2.cvtColor(img, cv2.COLOR_BGR2GRAY)
_, thresh = cv2.threshold(gray, 127, 255, cv2.THRESH_BINARY)
# 查找所有的连通域
contours, hierarchy = cv2.findContours(thresh, cv2.RETR_TREE, cv2.CHAIN_APPROX_SIMPLE)
# 遍历所有的连通域并画出外接矩形
for c in contours:
x, y, w, h = cv2.boundingRect(c)
cv2.rectangle(img, (x,y), (x+w,y+h), (0,0,255), 2)
# 输出矩形的长、宽、面积
print("长: ", w)
print("宽: ", h)
print("面积: ", w*h)
# 显示处理后的图像
cv2.imshow('image', img)
cv2.waitKey(0)
cv2.destroyAllWindows()
```
其中,`cv2.findContours()`函数用于查找所有的连通域,返回的`contours`是一个列表,存储了所有的轮廓信息;`cv2.boundingRect()`函数用于计算轮廓的外接矩形,返回的`(x,y,w,h)`表示外接矩形的左上角坐标和宽度、高度;`cv2.rectangle()`函数用于在图像上绘制矩形,参数依次为:图像、矩形左上角坐标、矩形右下角坐标、颜色、线宽度。
相关推荐
![zip](https://img-home.csdnimg.cn/images/20210720083736.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)