21xrx.com
2024-12-22 16:47:09 Sunday
登录
文章检索 我的文章 写文章
OpenCV圆形检测代码实例
2023-07-23 03:03:31 深夜i     --     --
OpenCV 圆形检测 代码实例

OpenCV是一个强大的计算机视觉库,可以用于图像处理和分析。在图像处理中,圆形检测是一项常见的任务。本文将介绍如何使用OpenCV进行圆形检测,并提供一个代码示例。

首先,我们需要导入OpenCV库。可以使用以下代码:

python

import cv2

import numpy as np

接下来,我们读取一张图片,并将其转换为灰度图像。灰度图像对于圆形检测是更合适的输入。可以使用以下代码:

python

image = cv2.imread('circle_image.jpg')

gray = cv2.cvtColor(image, cv2.COLOR_BGR2GRAY)

然后,我们需要对图像应用模糊处理,以降低噪声的影响。这可以使用高斯模糊函数实现。示例代码如下:

python

blur = cv2.GaussianBlur(gray, (5, 5), 0)

接下来,我们可以使用HoughCircles函数来检测图像中的圆形。该函数需要设置一些参数,如圆形的最小和最大半径,以及圆心之间的最小距离。代码示例如下:

python

circles = cv2.HoughCircles(blur, cv2.HOUGH_GRADIENT, 1, minDist=20, param1=50, param2=30, minRadius=0, maxRadius=0)

最后,我们可以在图像上绘制检测到的圆形。可以使用以下代码来实现:

python

if circles is not None:

  circles = np.uint16(np.around(circles))

  for circle in circles[0, :]:

    cv2.circle(image, (circle[0], circle[1]), circle[2], (0, 255, 0), 2)

    cv2.circle(image, (circle[0], circle[1]), 2, (0, 0, 255), 3)

上面的代码将检测到的圆形使用绿色绘制在图像上,并在圆心处绘制红色点。

最后,我们可以显示图像并保存结果。示例如下:

python

cv2.imshow("Detected Circles", image)

cv2.imwrite("circle_detection_result.jpg", image)

cv2.waitKey(0)

cv2.destroyAllWindows()

在代码的最后,我们使用imshow函数显示检测到的圆形,并使用imwrite函数将结果保存为图像文件。

现在,我们已经完成了使用OpenCV进行圆形检测的代码实例。通过运行上述代码,我们可以实现对图像中圆形的自动检测和标记。这在很多应用中都是非常有用的,如目标识别、物体跟踪等。希望本文的内容对你有所帮助。

  
  

评论区

{{item['qq_nickname']}}
()
回复
回复