用python写一个轮廓识别程序并能够输出轮廓面积
时间: 2024-05-01 17:20:16 浏览: 70
好的,可以使用OpenCV库来实现轮廓识别程序,并使用cv2.contourArea()函数来计算轮廓面积。
以下是一个简单的程序,可以识别输入图片中的轮廓,并输出每个轮廓的面积:
```python
import cv2
# 读取输入图片
img = cv2.imread('input.jpg')
# 将图像转换为灰度图像
gray = cv2.cvtColor(img, cv2.COLOR_BGR2GRAY)
# 进行二值化处理
_, thresh = cv2.threshold(gray, 127, 255, cv2.THRESH_BINARY)
# 查找轮廓
contours, _ = cv2.findContours(thresh, cv2.RETR_TREE, cv2.CHAIN_APPROX_SIMPLE)
# 输出每个轮廓的面积
for contour in contours:
area = cv2.contourArea(contour)
print('Contour area:', area)
# 在原图上绘制轮廓
cv2.drawContours(img, contours, -1, (0, 255, 0), 3)
# 显示结果图像
cv2.imshow('Contours', img)
cv2.waitKey(0)
cv2.destroyAllWindows()
```
在运行程序之前,需要将代码中的`input.jpg`替换为实际的输入图片路径。
程序首先读取输入图片,并将其转换为灰度图像。然后,使用二值化处理将图像转换为黑白图像,以便更容易地找到轮廓。接着,使用`cv2.findContours()`函数查找图像中的轮廓,并使用`cv2.contourArea()`函数计算每个轮廓的面积。最后,程序在原图上绘制出所有的轮廓,并显示结果图像。
希望这个程序能够帮到你!
阅读全文