学习目标

在本章中,

  • 我们将学习使用霍夫变换来查找图像中的圆。

  • 我们将看到以下函数:cv.HoughCircles()

理论

圆在数学上表示为,其中

圆的中心,r是圆的半径。从等式中,我们可以看到我们有3个参数,因此我们需要3D累加器进行霍夫变换,这将非常低效。因此,OpenCV使用更加技巧性的方法,即使用边缘的梯度信息的Hough梯度方法

我们在这里使用的函数是cv.HoughCircles()。它有很多参数,这些参数在文档中有很好的解释。因此,我们直接转到代码。

import numpy as np
import cv2 as cv
img = cv.imread('opencv-logo-white.png',0)
img = cv.medianBlur(img,5)
cimg = cv.cvtColor(img,cv.COLOR_GRAY2BGR)
circles = cv.HoughCircles(img,cv.HOUGH_GRADIENT,1,20,param1=50,param2=30,minRadius=0,maxRadius=0)
circles = np.uint16(np.around(circles))
for i in circles[0,:]:# 绘制外圆cv.circle(cimg,(i[0],i[1]),i[2],(0,255,0),2)# 绘制圆心cv.circle(cimg,(i[0],i[1]),2,(0,0,255),3)
cv.imshow('detected circles',cimg)
cv.waitKey(0)
cv.destroyAllWindows()

结果如下:

☆☆☆为方便大家查阅,小编已将OpenCV-Python专栏文章统一整理到公众号底部菜单栏,同步更新中,关注公众号,点击左下方“文章”,如图:

或点击下方“阅读原文”,进入OpenCV-Python专栏,即可查看系列文章。

不断更新资源

获取更多精彩

长按二维码扫码关注

OpenCV系列之霍夫圈变换 | 三十三相关推荐

  1. OpenCV系列之霍夫线变换 | 三十二

    目标 在这一章当中, 我们将了解霍夫变换的概念. 我们将看到如何使用它来检测图像中的线条. 我们将看到以下函数:cv.HoughLines(),cv.HoughLinesP() 理论 如果可以用数学形 ...

  2. Python+opencv 机器视觉 - 基于霍夫圈变换算法检测图像中的圆形实例演示

    Python+opencv 机器视觉 - 基于霍夫圈变换算法检测图像中的圆形实例演示 第一章:霍夫变换检测圆 ① 实例演示1 ② 实例演示2 ③ 霍夫变换函数解析 第二章:Python + openc ...

  3. 【OpenCV新手教程之十四】OpenCV霍夫变换:霍夫线变换,霍夫圆变换合辑

    本系列文章由@浅墨_毛星云 出品,转载请注明出处. 文章链接: http://blog.csdn.net/poem_qianmo/article/details/26977557 作者:毛星云(浅墨) ...

  4. 【OpenCV入门教程之十四】OpenCV霍夫变换:霍夫线变换,霍夫圆变换合辑

    本系列文章由@浅墨_毛星云 出品,转载请注明出处. 文章链接: http://blog.csdn.net/poem_qianmo/article/details/26977557 作者:毛星云(浅墨) ...

  5. OpenCV霍夫变换:霍夫线变换,霍夫圆变换合辑

    本篇文章中,我们一起探讨了OpenCV中霍夫变换相关的知识点,以及了解了OpenCV中实现霍夫线变换的HoughLines.HoughLinesP函数的使用方法,实现霍夫圆变换的HoughCircle ...

  6. python 霍夫直线变换_OpenCV-Python 霍夫线变换 | 三十二

    目标 在这一章当中, 我们将了解霍夫变换的概念. 我们将看到如何使用它来检测图像中的线条. 我们将看到以下函数:cv.HoughLines(),cv.HoughLinesP() 理论 如果可以用数学形 ...

  7. OpenCV-Python 霍夫线变换 | 三十二

    目标 在这一章当中, 我们将了解霍夫变换的概念. 我们将看到如何使用它来检测图像中的线条. 我们将看到以下函数:cv.HoughLines(),cv.HoughLinesP() 理论 如果可以用数学形 ...

  8. OpenCV中的霍夫线变换、概率霍夫线变换

    OpenCV中的霍夫线变换.概率霍夫线变换 1. 效果图 2. 原理 2.1 什么是霍夫变换? 2.2 什么是概率霍夫变换? 3. 源码 3.1 霍夫变换 3.2 概率霍夫变换 参考 这篇博客将介绍P ...

  9. 霍夫圈变换——Hough circle

    草鸡详细的hough.circle介绍 一个电脑编程小白的自我成长之路(&_&)嘿嘿. CvSeq* cvHoughCircles( CvArr* image, void* circl ...

最新文章

  1. 使用Windows 2008证书服务器为智能卡颁发证书
  2. 什么叫组网_5G NSA和SA是什么?有什么不同?
  3. panda对于EXCEL单元赋值如何能够设置string?
  4. 软件设计是决定软件性能的关键
  5. Java 设计模式之命令模式
  6. Systemd-CentOS7系统服务介绍与CentOS6服务对比
  7. LeetCode 431. 将 N 叉树编码为二叉树(递归/层序)
  8. 编写Android.mk中的LOCAL_SRC_FILES,使其自动查找源文件,不需要手动添加
  9. oracle中的sysdba角色,oracle 以sysdba角色 登陆用户
  10. 【每日一读】EMNLP2020: 面向多跳问答的分层图网络
  11. 小白初学Vue之 组件与实例的关系 初试篇
  12. OpenCV绘制文字的代码及Mat/IplImage的转换
  13. 公式冒号是什么意思_冒号是什么意思
  14. 测试工作干了8年,却被实习生代替,是实习生太牛了,还是我们太弱了?
  15. 概率分布之二项分布与多项分布
  16. WebGL场景的两种地面构造方法
  17. 访问路由出现An error occurred
  18. ACM、OI、IOI编程竞赛模式介绍
  19. Jexi设计 (1) Lexi研究
  20. 购物网站的商品推荐算法有哪些?

热门文章

  1. 如何检测一台机器是否宕机?(转载)
  2. Linux执行date命令发现差了12小时,格式是EDT
  3. java 集成_java提高篇(二)-----理解java的三大特性之继承
  4. 海康、大华、tplink监控摄像头和硬盘录像机接入GB28181平台配置细节
  5. Ubuntu的dpkg error
  6. 《房思琪的初恋乐园》向死而生的文学绝唱
  7. 怎么样去掉scratch中的字符串的第一个字符?/scratch巧妙去掉字符串数最开头0/字符串算法操作/字符串的逆序/变量逆序
  8. 购买投资性房地产的7项原则
  9. VMware虚拟机用CommVault备份后快照无法整合的真相!
  10. 客户端开屏广告适配的一点经验