opencv学习笔记之霍夫圆检测(python版)

import cv2 as cv
import numpy as np

planets = cv.imread("planet_glow.jpg")
gay_img =cv.cvtColor(planets,cv.COLOR_BGRA2GRAY)
img  = cv.medianBlur(gay_img, 7)  #进行中值模糊,去噪点
cimg = cv.cvtColor(img, cv.COLOR_GRAY2BGR)
circles = cv.HoughCircles(img,cv.HOUGH_GRADIENT, 1, 120, param1=100, param2=30, minRadius=0, maxRadius=0)

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


for i in circles[0,:]: #遍历矩阵每一行的数据
    cv.circle(planets, (i[0],i[1]),i[2],(0,255,0) ,2)
    cv.circle(planets, (i[0], i[1]),2, (0,0,255) ,3)         


cv.imshow("gay_img", planets)
cv.waitKey(0)
cv.destroyAllWindows()

样图:

效果图:(按照书上设置的参数效果不好,cv.medianBlur(gay_img, 7) 把第二个参数调成7以后才得到最终效果 )

 

 

  • 8
    点赞
  • 32
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
霍夫圆检测(Hough Circle Detection)是一种经典的图像处理算法,用于在图像中寻找圆形目标。在Python中,可以使用OpenCV库方便地实现霍夫圆检测。下面是一个基本的示例代码: ```python import cv2 import numpy as np # 读取图像 img = cv2.imread('image.jpg',0) # 中值滤波 img = cv2.medianBlur(img,5) # 霍夫圆检测 circles = cv2.HoughCircles(img,cv2.HOUGH_GRADIENT,1,20, param1=50,param2=30,minRadius=0,maxRadius=0) # 绘制检测到的圆 circles = np.uint16(np.around(circles)) for i in circles[0,:]: # 绘制外圆 cv2.circle(img,(i[0],i[1]),i[2],(0,255,0),2) # 绘制圆心 cv2.circle(img,(i[0],i[1]),2,(0,0,255),3) # 显示图像 cv2.imshow('image',img) cv2.waitKey(0) cv2.destroyAllWindows() ``` 在这个示例中,我们首先读取一张图像,然后对其进行中值滤波以去除噪声,接着进行霍夫圆检测。在检测到圆后,我们将其在图像上进行绘制,并显示出来。 `cv2.HoughCircles`是OpenCV中实现霍夫圆检测的函数之一,其用法如下: ```python circles = cv2.HoughCircles(image, method, dp, minDist, param1=None, param2=None, minRadius=None, maxRadius=None) ``` 其中,参数说明如下: - `image`: 输入图像,必须为单通道灰度图像。 - `method`: 霍夫梯度方法,一般设为`cv2.HOUGH_GRADIENT`。 - `dp`: 圆心检测器分辨率与图像分辨率之比,一般设为1。 - `minDist`: 检测到的圆之间的最小距离,一般设为圆的直径大小。 - `param1`: Canny边缘检测器的高阈值,一般设为50。 - `param2`: 圆心检测阈值,一般设为30。 - `minRadius`: 检测到的圆的最小半径。 - `maxRadius`: 检测到的圆的最大半径。 该函数返回一个`circles`数组,其中每个元素为一个包含三个值的数组,分别表示圆心的x坐标、y坐标和半径大小。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值