用Python编写一下提取工件缺陷几何特征代码包含面积,周长,质心,并把缺陷画出来
时间: 2023-06-09 13:04:59 浏览: 105
好的,针对您的问题,以下是一个示例Python代码,可以提取工件缺陷的几何特征并画出缺陷。
```python
import cv2
import numpy as np
# 读入图像
img = cv2.imread('image.jpg')
# 灰度化图片
gray = cv2.cvtColor(img, cv2.COLOR_BGR2GRAY)
# 二值化图片
_, thresh = cv2.threshold(gray, 0, 255, cv2.THRESH_BINARY_INV+cv2.THRESH_OTSU)
# 查找图像轮廓
contours, _ = cv2.findContours(thresh, cv2.RETR_EXTERNAL, cv2.CHAIN_APPROX_SIMPLE)
# 遍历每个轮廓
for i, contour in enumerate(contours):
# 计算轮廓面积
area = cv2.contourArea(contour)
# 计算轮廓周长
perimeter = cv2.arcLength(contour, True)
# 计算轮廓质心
m = cv2.moments(contour)
cx = int(m['m10']/m['m00'])
cy = int(m['m01']/m['m00'])
# 在图像上画出轮廓
cv2.drawContours(img, [contour], -1, (0, 0, 255), 2)
# 在轮廓上标出面积、周长、质心
cv2.putText(img, f'{i+1}: area={area:.2f}, perimeter={perimeter:.2f}', (cx-100, cy+50), cv2.FONT_HERSHEY_SIMPLEX, 1, (0, 0, 255), 2)
cv2.circle(img, (cx, cy), 2, (0, 0, 255), 2)
# 显示图像
cv2.imshow('Image', img)
cv2.waitKey(0)
cv2.destroyAllWindows()
```
请注意,此示例代码仅提供参考,需要根据实际情况进行修改和适应。另外,请确保您已经安装了OpenCV库。
如果您有任何其他问题,请随时问我!
阅读全文