python 边缘检测,测量面积,并在每个图形上标注面积
时间: 2023-06-19 18:08:35 浏览: 139
你可以使用OpenCV库进行边缘检测和图像处理,以下是一个简单的Python代码示例:
```python
import cv2
# 读取图像
img = cv2.imread('image.jpg')
# 转换为灰度图像
gray = cv2.cvtColor(img, cv2.COLOR_BGR2GRAY)
# 边缘检测
edges = cv2.Canny(gray, 100, 200)
# 查找轮廓
contours, hierarchy = cv2.findContours(edges, cv2.RETR_EXTERNAL, cv2.CHAIN_APPROX_SIMPLE)
# 遍历每个轮廓
for i, c in enumerate(contours):
# 计算轮廓面积
area = cv2.contourArea(c)
# 在图像上标注面积
cv2.putText(img, f"{area:.2f}", tuple(c[0][0]), cv2.FONT_HERSHEY_SIMPLEX, 0.5, (255, 0, 0), 1)
# 在图像上绘制轮廓
cv2.drawContours(img, [c], 0, (0, 0, 255), 2)
# 显示图像
cv2.imshow('image', img)
cv2.waitKey(0)
cv2.destroyAllWindows()
```
在这个示例中,我们首先读取图像并将其转换为灰度图像,然后应用Canny边缘检测算法找到图像中的边缘。接下来,我们使用`cv2.findContours`函数查找图像中的轮廓,然后遍历每个轮廓,计算其面积并在图像上标注。最后,我们使用`cv2.drawContours`函数在图像上绘制轮廓,并将其显示出来。
请注意,在这个示例中,我们使用的是`cv2.RETR_EXTERNAL`模式来查找轮廓,这意味着我们只查找最外层的轮廓。如果您想查找所有的轮廓,可以使用`cv2.RETR_LIST`模式。
阅读全文