使用 Python 中的 OpenCV 在图像中查找圆圈
pythonserver side programmingprogramming
OpenCV 平台为 Python 提供了 cv2 库。这可用于各种形状分析,这在计算机视觉中很有用。在本文中,我们将使用 Open CV 识别圆圈的形状。为此,我们将使用 cv2.HoughCircles() 函数。使用霍夫变换在灰度图像中查找圆圈。在下面的示例中,我们将以图像作为输入。然后复制它并应用此变换函数来识别输出中的圆圈。
语法
cv2.HoughCircles(image, method, dp, minDist) 其中 Image 是转换为灰度的图像文件 Method 是用于检测圆圈的算法。 Dp 是累加器分辨率与图像分辨率的反比。 minDist 是检测到的圆的中心坐标之间的最小距离。
示例
在下面的例子中,我们使用下面的图像作为输入图像。然后运行下面的程序来获取圆圈。
下面的程序检测图像文件中是否存在圆圈。如果存在圆圈,则突出显示它。
示例
import cv2 import numpy as np image = cv2.imread('circle_ellipse_2.JPG') output = image.copy() img = cv2.cvtColor(image, cv2.COLOR_BGR2GRAY) # 查找圆圈 circles = cv2.HoughCircles(img, cv2.HOUGH_GRADIENT, 1.3, 100) # 如果找到某个圆圈 if circles is not None: # 获取 (x, y, r) 作为整数 circles = np.round(circles[0, :]).astype("int") print(circles) # 循环遍历圆圈 for (x, y, r) in circles: cv2.circle(output, (x, y), r, (0, 255, 0), 2) # 显示输出图像 cv2.imshow("circle",output) cv2.waitKey(0)
运行上述代码得到以下结果 −
输出
[[93 98 84]]
我们得到下面的显示输出的图表。