Python霍夫圆形检测输出园的半径和圆心坐标
时间: 2024-04-17 14:06:33 浏览: 28
在Python中,可以使用OpenCV库来实现霍夫圆形检测,并输出圆的半径和圆心坐标。以下是一个示例代码:
```python
import cv2
import numpy as np
# 读取图像并转为灰度图
img = cv2.imread('circle.jpg')
gray = cv2.cvtColor(img, cv2.COLOR_BGR2GRAY)
# 对灰度图进行高斯滤波和二值化处理
blur = cv2.GaussianBlur(gray, (5, 5), 0)
thresh = cv2.threshold(blur, 60, 255, cv2.THRESH_BINARY)[1]
# 进行霍夫圆形检测
circles = cv2.HoughCircles(thresh, 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:
print("半径:", r)
print("圆心坐标:", x, y)
```
在上述代码中,使用`cv2.imread`函数读取图像,然后使用`cv2.cvtColor`函数将其转为灰度图。接着使用`cv2.GaussianBlur`对灰度图进行高斯滤波,再使用`cv2.threshold`函数进行二值化处理。
然后使用`cv2.HoughCircles`函数进行霍夫圆形检测,其中`param1`和`param2`是霍夫变换的两个参数,`minRadius`和`maxRadius`是圆的最小和最大半径。最后使用`np.round`函数将圆心坐标和半径转为整数,并输出。