21xrx.com
2024-05-20 11:28:53 Monday
登录
文章检索 我的文章 写文章
OpenCV中的哪个函数可用来检测圆形?
2023-08-08 22:27:57 深夜i     --     --
OpenCV 函数 检测圆形 图片处理 计算机视觉

OpenCV是一个非常强大的计算机视觉库,它提供了许多函数和工具,用于在图像和视频上进行各种各样的操作和分析。其中一个常见的任务是检测图像中的圆形。

在OpenCV中,可以使用Hough圆变换来检测图像中的圆形。Hough圆变换是一种基于数学原理的技术,可以通过在图像中搜索圆形边缘点来检测圆形。

要在OpenCV中使用Hough圆变换,可以使用函数cv2.HoughCircles()。这个函数需要输入一个灰度图像,因此在使用它之前,我们需要将图像转换为灰度图像。然后,我们可以在灰度图像上应用Hough圆变换,并返回检测到的圆的参数。

下面是一个使用cv2.HoughCircles()函数来检测圆形的示例代码:


import cv2

import numpy as np

# 读入图像

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

# 将图像转换为灰度图像

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

# 对灰度图像进行模糊处理

blur = cv2.medianBlur(gray, 5)

# 使用Hough圆变换检测圆形

circles = cv2.HoughCircles(blur, cv2.HOUGH_GRADIENT, dp=1, minDist=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:

    cv2.circle(image, (x, y), r, (0, 255, 0), 4)

# 显示结果

cv2.imshow("Detected Circles", image)

cv2.waitKey(0)

cv2.destroyAllWindows()

上面的代码首先读入图像,并将其转换为灰度图像。然后,我们对灰度图像进行了模糊处理,以减少噪音的影响。接下来,我们使用cv2.HoughCircles()函数来检测图像中的圆形。这个函数返回一个包含检测到的圆形参数的数组。如果检测到圆形,则我们使用cv2.circle()函数将其画出。最后,我们显示结果的图像。

使用cv2.HoughCircles()函数来检测图像中的圆形是一个非常有用的工具。它可以应用于许多任务,如检测图像中的硬币、球体或其他圆形对象等。该函数的参数可以根据具体任务进行调整,以获取最佳的检测结果。

  
  

评论区

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