霍夫圆检测python代码
时间: 2023-09-10 19:14:28 浏览: 74
以下是使用OpenCV库实现霍夫圆检测的Python代码示例:
```python
import cv2
import numpy as np
# 读取图像
img = cv2.imread('circles.jpg')
# 灰度化处理
gray = cv2.cvtColor(img, cv2.COLOR_BGR2GRAY)
# 霍夫圆检测
circles = cv2.HoughCircles(gray, cv2.HOUGH_GRADIENT, 1, 20, param1=50, param2=30, minRadius=0, maxRadius=0)
# 绘制检测到的圆
if circles is not None:
circles = np.round(circles[0, :]).astype("int")
for (x, y, r) in circles:
cv2.circle(img, (x, y), r, (0, 255, 0), 2)
# 显示结果
cv2.imshow("Image", img)
cv2.waitKey(0)
cv2.destroyAllWindows()
```
其中,`cv2.HoughCircles()` 是进行霍夫圆检测的函数。参数 `gray` 是输入的灰度图像,`cv2.HOUGH_GRADIENT` 表示使用梯度法进行霍夫圆检测,参数 `param1` 和 `param2` 分别是霍夫圆检测的两个阈值,`minRadius` 和 `maxRadius` 分别是允许检测到的圆的最小半径和最大半径。函数返回的是检测到的圆的参数 `(x, y, r)`,其中 `(x, y)` 是圆心坐标,`r` 是半径。