写一段opencv python 识别圆直径
时间: 2023-11-15 21:04:50 浏览: 152
好的,下面是一段 OpenCV Python 代码,用于识别圆的直径:
```python
import cv2
import numpy as np
# 读取图片
img = cv2.imread('circle.jpg', cv2.IMREAD_GRAYSCALE)
# 高斯模糊处理
blur = cv2.GaussianBlur(img, (5,5), 0)
# 边缘检测
edges = cv2.Canny(blur, 100, 200)
# 寻找圆形
circles = cv2.HoughCircles(edges, cv2.HOUGH_GRADIENT, 1, 20, param1=50, param2=30, minRadius=0, maxRadius=0)
# 取整
circles = np.uint16(np.around(circles))
# 画圆
for i in circles[0,:]:
# 画出圆形
cv2.circle(img, (i[0], i[1]), i[2], (0, 255, 0), 2)
# 画出圆形的中心
cv2.circle(img, (i[0], i[1]), 2, (0, 0, 255), 3)
# 显示结果
cv2.imshow('result', img)
cv2.waitKey(0)
cv2.destroyAllWindows()
```
该代码首先读取一张图片,并对其进行高斯模糊处理和边缘检测,然后使用霍夫圆变换寻找圆形,并画出圆形和圆心,最后显示结果图片。
需要注意的是,该代码仅适用于识别单个圆形,若需识别多个圆形,则需要进行额外的处理。
阅读全文