Python霍夫圆形检测可以输出圆心坐标吗
时间: 2024-05-04 19:17:40 浏览: 185
是的,Python的OpenCV库中提供了霍夫圆形检测函数`cv2.HoughCircles()`,它可以检测图像中的圆形,并返回圆心坐标和半径等信息。以下是一个简单的示例代码:
```python
import cv2
import numpy as np
# 读取图像
img = cv2.imread('circles.jpg', cv2.IMREAD_GRAYSCALE)
# 霍夫圆形检测
circles = cv2.HoughCircles(img, cv2.HOUGH_GRADIENT, 1, 20, param1=50, param2=30, minRadius=0, maxRadius=0)
# 输出圆心坐标和半径
for circle in circles[0]:
x, y, r = circle
print(f'圆心坐标: ({x}, {y}), 半径: {r}')
# 在图像上绘制检测到的圆形
circles = np.round(circles[0, :]).astype(int)
for circle in circles:
x, y, r = circle
cv2.circle(img, (x, y), r, (0, 255, 0), 2)
# 显示图像
cv2.imshow('Detected Circles', img)
cv2.waitKey(0)
cv2.destroyAllWindows()
```
注意,函数返回的`circles`变量是一个三维数组,第一个维度表示检测到的圆形的数量,第二个维度表示每个圆形的参数,第三个维度表示每个参数的具体值。在上面的代码中,我们对第一个维度进行了索引,然后遍历每个圆形的参数,输出圆心坐标和半径信息。
阅读全文