OpenCV霍夫圆变换cv2.HoughCircles

这篇博客将学习如何使用霍夫圆变换在图像中找到圆圈,OpenCV使用cv2.HoughCircles()实现霍夫圆变换,具有一定的参考价值,感兴趣的小伙伴们可以参考一下

OpenCV霍夫圆变换cv2.HoughCircles(),久久派带你了解更多相关信息。

目录
  • 1. 效果图
  • 2. 源码
  • 参考

这篇博客将学习如何使用霍夫圆变换在图像中找到圆圈,OpenCV使用cv2.HoughCircles()实现霍夫圆变换。

circles = cv2.HoughCircles(img,
cv2.HOUGH_GRADIENT, 1, 20,
param1=50, param2=40, minRadius=25, maxRadius=0)

img: 待检测的灰度图cv2.HOUGH_GRADIENT:检测的方法,霍夫梯度1:检测的圆与原始图像具有相同的大小,dp=2,检测的圆是原始图像的一半20:检测到的相邻圆的中心的最小距离(如果参数太小,除了一个真实的圆外,还可能会错误地检测到多个相邻圆。如果太大,可能会漏掉一些圆。)param1:在#HOUGHŠu梯度的情况下,它是较高的. 两个阈值传递到Canny边缘检测器(较低的一个小两倍)。param2:在#HOUGHŠu梯度的情况下,它是检测阶段圆心的累加器阈值。它越小,就越可能检测到假圆;minRadius:最小圆半径maxRadius:最大圆半径,如果<=0,则使用最大图像尺寸。如果<0,则返回没有找到半径的中心。

1. 效果图

原始图 VS 检测圆效果图如下:

如下右图可以看到3个外侧圆绿色,圆心红色被成功检测到;

OpenCV霍夫圆变换cv2.HoughCircles

圆的最小半径设置由25调整为10,也可能会错误的检测到圆,效果图如下:

OpenCV霍夫圆变换cv2.HoughCircles

检测圆半径的阈值(param2设置35)的结果,最小圆半径设置10,也可能会错误的检测到圆,效果图如下:

OpenCV霍夫圆变换cv2.HoughCircles

2. 源码

# 霍夫圆检测import cv2import numpy as npcimg = cv2.imread(\'opencv_logo_350.jpg\')cv2.imshow(\"origin\", cimg)cv2.waitKey(0)img = cv2.cvtColor(cimg,cv2.COLOR_BGR2GRAY)img = cv2.medianBlur(img, 5)cimg = cv2.cvtColor(img, cv2.COLOR_GRAY2BGR)# - img: 待检测的灰度图# - cv2.HOUGH_GRADIENT:检测的方法,霍夫梯度# - 1:检测的圆与原始图像具有相同的大小,dp=2,检测的圆是原始图像的一半# - 20:检测到的圆的中心的最小距离(如果参数为太小,除了一个真实的圆外,还可能会错误地检测到多个相邻圆。如果太大,可能会漏掉一些圆。)# - param1:在#HOUGHŠu梯度的情况下,它是较高的. 两个阈值传递到Canny边缘检测器(较低的一个小两倍)。# - param2:在#HOUGHŠu梯度的情况下,它是检测阶段圆心的累加器阈值。它越小,就越可能检测到假圆;# - minRadius:最小圆半径,也可能会检测到假圆# - maxRadius:最大圆半径,如果<=0,则使用最大图像尺寸。如果<0,则返回没有找到半径的中心。circles = cv2.HoughCircles(img, cv2.HOUGH_GRADIENT, 1, 20,                           param1=50, param2=40, minRadius=0, maxRadius=0)# 最小圆半径设置不合适,也可能会检测到假圆# circles = cv2.HoughCircles(img, cv2.HOUGH_GRADIENT, 1, 20,#                            param1=50, param2=40, minRadius=0, maxRadius=0)# circles = cv2.HoughCircles(img, cv2.HOUGH_GRADIENT, 1, 20,#                            param1=50, param2=30, minRadius=10, maxRadius=0)circles = np.uint16(np.around(circles))print(len(circles))print(circles)for i in circles[0, :]:    # 绘制外圈圆(蓝色)    cv2.circle(cimg, (i[0], i[1]), i[2], (0, 255, 0), 2)    # 绘制圆心(红色)    cv2.circle(cimg, (i[0], i[1]), 2, (0, 0, 255), 3)cv2.imshow(\'detected circles\', cimg)cv2.waitKey(0)cv2.destroyAllWindows()

参考

https://docs.opencv.org/3.0-beta/doc/py_tutorials/py_imgproc/py_houghcircles/py_houghcircles.html#hough-circles

到此这篇关于OpenCV霍夫圆变换cv2.HoughCircles()的文章就介绍到这了,更多相关OpenCV霍夫圆变换内容请搜索趣讯吧以前的文章或继续浏览下面的相关文章希望大家以后多多支持趣讯吧!

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容,请发送邮件至 55@qq.com 举报,一经查实,本站将立刻删除。转转请注明出处:https://www.szhjjp.com/n/7876.html

(0)
上一篇 2021-07-29 04:10:49
下一篇 2021-07-29 04:11:01

相关推荐

  • 起亚k7多少钱一辆(2022起亚k7最新价格)

    韩系车现如今在国内的市场表现并不是很好,对于这一点大家也都是比较清楚的。不夸张的说,韩系车在国内也就勉强算是夹缝中求生存了,日系车一直以来在国内都是气势汹汹的代表,无数车友的爱车都是日系车,日系车大多数给人的感觉就是质量好,油耗低,对于国人来说这是非

    2022-01-14
    2040
  • 黄牛加价收购iPhone13部分型号(背后真相实在让人惊愕)

    黄牛加价收购iPhone13部分型号背后真相实在让人惊愕!今天,苹果店的上海南京东路店和北京三里屯太古里店,店内店外都挤满了人,店内是来购买产品的人,而店外聚集着不少黄牛。黄牛在门口,希望收购新款iPhone,可以根据产品加价百千元不等

    2021-09-24
    8610
  • 电脑i5处理器哪个好(笔记本i5处理器排行榜)

    CPU种类繁多,新手选购并不容易,经常会产生选择困难症。所以今天带大家看看京东上综合排名靠前的5款处理器,没准会给你攒机提供思路。图片来自京东上榜的处理器有3款属于英特尔,2款属于AMD。不过在这三款3款英特尔处理器中我们并没有见到最新的12代酷

    2021-12-31 热点头条
    1680
  • ubuntuchrome安装教程(ubuntu安装谷歌浏览器)

    环境:ubuntu14.0464位在ubuntu中浏览器打开,下载chrome的deb安装包下载完成后,可以选择双击安装包安装也可以使用命令sudodpkg-igoogle-chrome-stable_current_am

    2022-01-08 热点头条
    1910
  • 100万放银行一年利息多少(100万吃利息够养老吗)

    “不上班白拿钱”是很多“打工人”的愿望,小编经常能看到有网友问类似的问题,比如“有100万存款,还用上班吗?”“工作20年攒下100万,可以辞职不干了吗?”等等。那么,有100万存款,一年利息是多少?如果不上班,只靠利息生活,真的够用吗?.有100万

    2021-12-31
    1990
  • 出逃的阿富汗前总统为何这么有钱?阿富汗前总统加尼为什么有钱?阿富汗总统连夜出逃

    近期大家对于阿富汗的关注度都是非常高的,自从美国从阿富汗撤军之后,塔利班就迅速接管了阿富汗政权,据说阿富汗出逃的前总统加尼携带了4辆车的现金外套,那么他为什么这么有钱呢?下面就跟随趣讯吧小编一起来了解一下出逃的阿富汗前总统为何这么有钱,阿富

    2021-08-17
    4990

发表回复

登录后才能评论