得到contours后计算contours的面积
时间: 2023-09-27 18:10:36 浏览: 51
在Python中,可以使用OpenCV库中的 `cv2.contourArea()` 函数来计算轮廓的面积。以下是一个示例代码:
```python
import cv2
# 读取图像
img = cv2.imread('input.jpg')
# 转为灰度图像
gray = cv2.cvtColor(img, cv2.COLOR_BGR2GRAY)
# 进行阈值处理
ret, thresh = cv2.threshold(gray, 127, 255, cv2.THRESH_BINARY)
# 获取轮廓
contours, hierarchy = cv2.findContours(thresh, cv2.RETR_EXTERNAL, cv2.CHAIN_APPROX_SIMPLE)
# 计算并输出每个轮廓的面积
for cnt in contours:
area = cv2.contourArea(cnt)
print("Contour area:", area)
# 显示结果图像
cv2.drawContours(img, contours, -1, (0, 255, 0), 2)
cv2.imshow('Contours', img)
cv2.waitKey(0)
cv2.destroyAllWindows()
```
在上述代码中,我们首先读取一张图像,并将其转换为灰度图像。然后,使用阈值处理得到二值化图像,并使用 `cv2.findContours()` 函数获取轮廓。接着,通过遍历每个轮廓,使用 `cv2.contourArea()` 函数计算每个轮廓的面积并输出。最后,使用 `cv2.drawContours()` 函数将轮廓绘制到原图像上,并显示出来。
需要注意的是,在使用 `cv2.findContours()` 函数时,需要指定 `cv2.RETR_EXTERNAL` 参数来只获取外部轮廓。如果需要获取所有轮廓,可以将该参数改为 `cv2.RETR_LIST`。
相关推荐
![zip](https://img-home.csdnimg.cn/images/20210720083736.png)
![zip](https://img-home.csdnimg.cn/images/20210720083736.png)
![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)