python opencv圆形检测
时间: 2023-08-17 22:10:01 浏览: 110
你可以使用OpenCV库来进行圆形检测。下面是一个简单的示例代码:
```python
import cv2
import numpy as np
# 读取图像
image = cv2.imread("image.jpg")
gray = cv2.cvtColor(image, cv2.COLOR_BGR2GRAY)
# 高斯模糊
blur = cv2.GaussianBlur(gray, (5, 5), 0)
# 检测圆形
circles = cv2.HoughCircles(blur, cv2.HOUGH_GRADIENT, 1.2, 100)
# 确保至少检测到一个圆
if circles is not None:
# 将圆心和半径转换为整数
circles = np.round(circles[0, :]).astype("int")
# 循环遍历所有检测到的圆并绘制
for (x, y, r) in circles:
cv2.circle(image, (x, y), r, (0, 255, 0), 4)
# 显示结果图像
cv2.imshow("Circle Detection", image)
cv2.waitKey(0)
cv2.destroyAllWindows()
```
在这个示例中,首先读取图像,然后将其转换为灰度图像。接下来,通过应用高斯模糊来降噪。
然后,使用`cv2.HoughCircles`函数来检测圆形。该函数的参数包括输入图像、检测方法、圆心间距倍数、最小圆半径和最大圆半径等。
最后,遍历检测到的圆并在原始图像上绘制检测到的圆。最后,显示结果图像。
请注意,这只是一个基本示例,你可能需要根据你的具体需求进行进一步调整和优化。
阅读全文