返回顶部
首页 > 资讯 > 精选 >OpenCV霍夫圆变换cv2.HoughCircles()的示例分析
  • 738
分享到

OpenCV霍夫圆变换cv2.HoughCircles()的示例分析

2023-06-20 18:06:37 738人浏览 独家记忆
摘要

这篇文章主要介绍OpenCV霍夫圆变换cv2.HoughCircles()的示例分析,文中介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们一定要看完!circles = cv2.HoughCircles(img,cv2.HOUGH_GR

这篇文章主要介绍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()

以上是“OpenCV霍夫圆变换cv2.HoughCircles()的示例分析”这篇文章的所有内容,感谢各位的阅读!希望分享的内容对大家有帮助,更多相关知识,欢迎关注编程网精选频道!

--结束END--

本文标题: OpenCV霍夫圆变换cv2.HoughCircles()的示例分析

本文链接: https://lsjlt.com/news/298988.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

猜你喜欢
  • OpenCV霍夫圆变换cv2.HoughCircles()的示例分析
    这篇文章主要介绍OpenCV霍夫圆变换cv2.HoughCircles()的示例分析,文中介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们一定要看完!circles = cv2.HoughCircles(img,cv2.HOUGH_GR...
    99+
    2023-06-20
  • OpenCV霍夫圆变换cv2.HoughCircles()
    目录1. 效果图2. 源码参考这篇博客将学习如何使用霍夫圆变换在图像中找到圆圈,OpenCV使用cv2.HoughCircles()实现霍夫圆变换。 circles = cv2.H...
    99+
    2024-04-02
  • 如何基于OpenCV&Python实现霍夫变换圆形检测
    简述 基于python使用opencv实现在一张图片中检测出圆形,并且根据坐标和半径标记出圆。不涉及理论,只讲应用。 霍夫变换检测圆形的原理 其实检测圆形和检测直线的原理差别不大...
    99+
    2024-04-02
  • java中霍夫曼树的示例分析
    这篇文章主要介绍了java中霍夫曼树的示例分析,具有一定借鉴价值,感兴趣的朋友可以参考下,希望大家阅读完这篇文章之后大有收获,下面让小编带着大家一起了解一下。霍夫曼树一、基本介绍二、霍夫曼树几个重要概念和举例说明 构成霍夫曼树的步...
    99+
    2023-06-21
  • Python OpenCV基于霍夫圈变换算法如何检测图像中的圆形
    小编给大家分享一下Python OpenCV基于霍夫圈变换算法如何检测图像中的圆形,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获,下面让我们一起去了解一下吧!第一章:霍夫变换检测圆①...
    99+
    2023-06-22
  • PythonOpenCV基于霍夫圈变换算法检测图像中的圆形
    目录第一章:霍夫变换检测圆① 实例演示1② 实例演示2③ 霍夫变换函数解析第二章:Python + opencv 完整检测代码① 源代码② 运行效果图第一章:霍夫变换检测圆 ① 实例...
    99+
    2024-04-02
  • Minitab17中的Johnson变换示例分析
    中的Johnson变换示例分析,很多新手对此不是很清楚,为了帮助大家解决这个难题,下面小编将为大家详细讲解,有这方面需求的人可以来学习下,希望你能有所收获。Johnson变换Johnson变换(Johnson transformation)...
    99+
    2023-06-19
  • OpenCV仿射变换的示例代码
    目录1、认识仿射变换2、仿射变换的求法3、进行仿射变换:warpAffine()函数4、计算二维旋转变换矩阵:getRotationMatrix2D()函数5、示例程序:1、认识仿射...
    99+
    2024-04-02
  • OpenCV+Python几何变换的实现示例
    目录几何变换1 缩放2 翻转3 仿射(一)平移(二)旋转4 透视5 重映射(一)复制(二)绕x轴翻转(三)绕y轴翻转(四)绕x轴y轴翻转(五)x轴、y轴互换(六)图像的缩放几何变换 ...
    99+
    2024-04-02
  • Python手动实现Hough圆变换的示例代码
    Hough圆变换的原理很多博客都已经说得非常清楚了,但是手动实现的比较少,所以本文直接贴上手动实现的代码。 这里使用的图片是一堆硬币:  首先利用通过计算梯度来寻找边缘,...
    99+
    2024-04-02
  • Python中opencv操作的示例分析
    这篇文章主要介绍Python中opencv操作的示例分析,文中介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们一定要看完!直接读取图片def display_img(file="p.jpeg"): ...
    99+
    2023-06-14
  • CSS变量的示例分析
    这篇文章将为大家详细讲解有关CSS变量的示例分析,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。随着 Web应用程序变得越来越大,CSS变得越来越大,越来越冗长,而且混乱不...
    99+
    2024-04-02
  • JavaScript变量的示例分析
    这篇文章主要为大家展示了“JavaScript变量的示例分析”,内容简而易懂,条理清晰,希望能够帮助大家解决疑惑,下面让小编带领大家一起研究并学习一下“JavaScript变量的示例分析”这篇文章吧。基本类...
    99+
    2024-04-02
  • CSS3变形的示例分析
    这篇文章主要介绍了CSS3变形的示例分析,具有一定借鉴价值,感兴趣的朋友可以参考下,希望大家阅读完这篇文章之后大有收获,下面让小编带着大家一起了解一下。CSS3变形CSS2.1中的页面都是静态的,网页设计师...
    99+
    2024-04-02
  • Swift变量的示例分析
    这篇文章主要介绍了Swift变量的示例分析,具有一定借鉴价值,感兴趣的朋友可以参考下,希望大家阅读完这篇文章之后大有收获,下面让小编带着大家一起了解一下。Swift 是苹果推出的编程语言,专门针对 OS X 和 iOS 的应用开发。Swif...
    99+
    2023-06-27
  • Shell变量的示例分析
    这篇文章主要介绍了Shell变量的示例分析,具有一定借鉴价值,感兴趣的朋友可以参考下,希望大家阅读完这篇文章之后大有收获,下面让小编带着大家一起了解一下。先不要管Shell的版本,来看看Shell 变量,在Shell中有三种变量:系统变量,...
    99+
    2023-06-09
  • Python-OpenCV深度学习的示例分析
    这篇文章将为大家详细讲解有关Python-OpenCV深度学习的示例分析,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。1. 计算机视觉中的深度学习简介深度学习推动了计算机视觉领域的深刻变革,我们首先解释深...
    99+
    2023-06-22
  • Python OpenCV图像识别的示例分析
    小编给大家分享一下Python OpenCV图像识别的示例分析,希望大家阅读完这篇文章之后都有所收获,下面让我们一起去探讨吧!一、人脸识别主要有以下两种实现方法:哈尔(Haar)级联法:专门解决人脸识别而推出的传统算法;实现步骤:...
    99+
    2023-06-29
  • Python OpenCV阈值处理的示例分析
    小编给大家分享一下Python OpenCV阈值处理的示例分析,希望大家阅读完这篇文章之后都有所收获,下面让我们一起去探讨吧!前言图像分割是许多计算机视觉应用中的关键处理步骤,通常用于将图像划分为不同的区域,这些区域常常对应于真实...
    99+
    2023-06-29
  • mysql timeout变量的示例分析
    小编给大家分享一下mysql timeout变量的示例分析,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获,下面让我们一起去了解一下吧!1、timeout变量知...
    99+
    2024-04-02
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作