opencv pythonr如何检测图中的圆
时间: 2023-06-07 21:09:46 浏览: 75
可以使用HoughCircles函数来检测图像中的圆。 首先需要使用OpenCV的cv2.imread功能来读取图像文件,然后进行灰度转换和高斯模糊操作以便于检测圆的边缘。接下来,使用HoughCircles函数进行检测,该函数会返回找到的圆的坐标和半径。以下是一个示例代码:
```
import cv2
import numpy as np
# Read image
img = cv2.imread('circle_image.jpg')
# Convert to grayscale
gray = cv2.cvtColor(img, cv2.COLOR_BGR2GRAY)
# Apply Gaussian Blur
blur = cv2.GaussianBlur(gray, (5,5), 0)
# Detect circles
circles = cv2.HoughCircles(blur, cv2.HOUGH_GRADIENT, 1, 20, param1=50, param2=30, minRadius=0, maxRadius=0)
# Draw detected circles
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.putText(img, "circle", (x-r, y-r), cv2.FONT_HERSHEY_SIMPLEX, 0.5, (0, 255, 0), 2)
# Show the output image
cv2.imshow("output", img)
cv2.waitKey(0)
```
这段代码会在检测到的圆的周围绘制一个绿色的圆,并在圆上方显示“circle”字样。
阅读全文