【OpenCv 4 Python 3.7】圆检测

Python+OpenCV3简单手势识别 文章目录安装相关库原理简述代码效果实现 今天教大家一个有趣的玩法,如何利用Python+opencv3实现简单的手势识别。当然网上也有相关教程,但绝大多数给出的代码拿来之后你是不能直接用的,这对于拿来主义的同学来说简直太“禽兽”了。所以今天我也会给出所有代码,只要配置好环境就可以运行。话不多说接下来就进入正题。 安装相关库 这个安装库的重要性就不用我多说了,但凡是想直接用人家的代码,就要安装人家运行所需的全部库。 pip install opencv-python pip install opencv 阅读详情

圆检测技术:

圆检测技术目前用处还是特别的广泛的,锅炉、管道等类似的情况,我们不能切开或者打孔去测试流量,温度等参数。这是我们可以在管道上画一个圆,用摄像机去检测圆中心,进而测试出我们需要的信息。

对于一个圆,就需要用三个参数来确定。使用Hough梯度法的依据是圆心一定出现在圆上的每个点的模向量上,圆上点的模向量的交点就是圆心的所在位置。Hough梯度法的第一步就是找到这些圆心,这样三维的累加平面就转化为二维累加平面。第二步就是根据所有候选中心的边缘非零像素对其的支持程度来确定半径。

在这里插入图片描述
 从平面坐标到极坐标转换三个参数C(x0 , y0 , r)其中x0 , y0是圆心
 假设平面坐标的任意一个圆上的点,转换到极坐标中:C(x0 ,y0 , r)处有最大值,霍夫变换正是利用这个原理实现圆的检测。

现实考量:
 因为霍夫圆检测对噪声比较敏感,所以首先要对图
像做中值滤波。
 基于效率考虑,Opencv中实现的霍夫变换圆检测
是基于图像梯度的实现,分为两步:

  1. 检测边缘,发现可能的圆心
  2. 基于第一步的基础上从候选圆心开始计算最佳半
    径大小

HoughCircles 函数参数:

1.image:输入图像 (灰度图)
2.method:指定检测方法. 现在OpenCV中只有霍夫梯度法
3.dp:累加器图像的反比分辨=1即可默认
4.minDist = src_gray.rows/8: 检测到圆心之间的最小距离,这是一个经验值。这个大了,那么多个圆就是被认为一个圆。
5.param_1 = 200: Canny边缘函数的高阈值
6.param_2 = 100: 圆心检测阈值.根据你的图像中的圆大小设置,当这张图片中的圆越小,那么此值就设置应该被设置越小。当设置的越小,那么检测出的圆越多,在检测较大的圆时则会产生很多噪声。所以要根据检测圆的大小变化。
7.min_radius = 0: 能检测到的最小圆半径, 默认为0.
8.max_radius = 0: 能检测到的最大圆半径, 默认为0

代码实现:

import cv2 as cv
import numpy as np

#圆检测
def detect_circles_demo(image):
    # 高斯双边模糊,不太好调节,霍夫噪声敏感,所以要先消除噪声
    # dst = cv.bilateralFilter(image, 0, 150, 5)

    # 使用高斯模糊,修改卷积核ksize也可以检测出来
    #dst = cv.GaussianBlur(image, (13, 15), 15)

    #均值迁移,EPT边缘保留滤波,霍夫噪声敏感,所以要先消除噪声
    dst = cv.pyrMeanShiftFiltering(image, 10, 100)
    cimage = cv.cvtColor(dst, cv.COLOR_BGR2GRAY)
    #cv.HOUGH_GRADIENT 基于梯度
    circles = cv.HoughCircles(cimage, cv.HOUGH_GRADIENT, 1, 20, param1=50, param2=30, minRadius=0, maxRadius=0)
    # around对数据四舍五入,为整数
    circles = np.uint16(np.around(circles))
    for i in circles[0, :]
        #画圆
        cv.circle(image, (i[0], i[1]), i[2], (0, 0, 255), 2)#2;线宽
        #画圆心
        cv.circle(image, (i[0], i[1]), 2, (255, 0, 0), 2)
    cv.imshow("circles", image)


print("--------- Python OpenCV Tutorial ---------")
src = cv.imread("D:/vcprojects/images/xingxing.jpg")
cv.namedWindow("input image", cv.WINDOW_AUTOSIZE)
cv.imshow("input image", src)
detect_circles_demo(src)
cv.waitKey(0)

cv.destroyAllWindows()

结果:

在这里插入图片描述

基于python的opencv霍夫找圆,显示坐标和名称,有超详细注释 近来刚接触opencv,组长布置给我一个任务,就是找圆。但是opencv资料很多,基于python的却很少,我找了许多代码都不是太满意,遂自己一行行扣代码,并写上普通人都能看得懂的注释。目前还不能解决两圆相切环境下的外圆相交问题,期待大神指正。下面上代码!我是用jupyter写的 #加载环境包 import cv2 import numpy as np #图片简单处理 img = cv2.im... 阅读详情

相关推荐

基于Python的OpenCV人脸检测

本文将要讲述的是Python环境下如何用OpenCV检测人脸,本文的主要内容分为: 1、检测图片中的人脸 2、实时检测视频中出现的人脸 3、用运设备的摄像头实时检测人脸 提前做的准备: 安装好Python3 下载安装OpenCV库,方法是pip install opencv-python -i https://mirrors.aliyun.com/pypi/simple/ --trusted-host=mirrors.aliyun.com/pypi/simple 下载特征数据HAAR和LBP,这两种数

冰河的博客 6万+

Python opencv进行圆形识别(圆检测)

圆形识别(圆检测)是图像识别中很常见的一种处理方式,最核心的是cv2.HoughCircles这个函数实现的圆形检测。

深圳五月花--老李的森林 3万+

树莓派安装 OpenCV3 在 python3.7 中运行

最近在用树莓派搭一个Delta Robot, 其中就要用到OpenCV做图像处理。然而发现网上很少有针对Python3.7版本的OpenCV3安装教程,所以在此总结一下以供大家参考。 本篇教程写于2019/8/7,其中包括如何安装树莓派系统,如何在Python3.7中安装OpenCV3,如何使用树莓派摄像头,以及如何在系统自带Thonny Python IDE中运行OpenCV相关指令。适用于新手...

qq_36322178的博客 4585

利用opencv用于识别圆并计算圆的半径和圆心的坐标_计算机视觉,opencv 圆形检测...

头条号:人工智能研究所 微信号:启示AI科技今天我们介绍一个opencv 函数cv2.HoughCircles(),此函数主要用于检测图像中的圆形,我们知道3点可以画一个圆,学习CAD的同学肯定知道,opencv使用霍夫梯度的方法进行圆的检测首先对图像进行canny边缘检测,对边缘中的每一个非0点,通过Sobel算法计算局部梯度。那么计算得到的梯度方向,实际上就是圆切线的法线。三条法线即可确定一个...

weixin_39525097的博客 5675

OpenCv学习笔记3--轮廓检测,多边形 直线 圆检测

此opencv系列博客只是为了记录小编对<<opencv3计算机视觉-pyhton语言实现>>的学习笔记,所有代码在我的github主页https://github.com/RenDong3/OpenCV_Notes. 欢迎star,不定时更新... 一 轮廓检测 在计算机视觉中,轮廓检测是另一个比较重要的任务,不单是用来检测图像或者视频帧中物体的轮廓,而且还有其他操...

小熊猫的博客 9549

OpenCV-Python实战(10)——详解 OpenCV 轮廓检测

在计算机视觉领域,轮廓通常指图像中对象边界的一系列点。因此,轮廓通常描述了对象边界的关键信息,包含了有关对象形状的主要信息,该信息可用于形状分析与对象检测和识别。在本文中,将首次通过简单示例了解轮廓的基本概念,然后通过实际示例来了解如何检测和压缩轮廓,最后利用介绍如何利用图像矩描述检测到的轮廓属性。

盼小辉丶的博客 3万+

【OpenCvSharp】霍夫圆检测:轻松实现圆形计数的神奇技巧!

【OpenCvSharp】霍夫圆检测:轻松实现圆形计数的神奇技巧!

寒冰屋的专栏 462

使用Python,OpenCV和Hough圆检测图像中的圆

这篇博客展示了如何在OpenCV中使用cv2.HoughCircles函数来检测图像中的圆。 与检测正方形或矩形不同,检测圆形要困难得多,因为我们无法确定圆的近似轮廓点数。 OpenCV提供了cv2.HoughCircles函数用来检测圆,尽管看似复杂,但最重要的参数是minDist,即检测到的圆的中心(x,y)坐标之间的最小距离。 如果将minDist设置得太小,可能会导致许多错误检测到的圆圈。另一方面,如果minDist太大,则可能会丢失一些圆圈。设置此参数肯定需要一些微调。

qq_40985985的博客 2270

可变参数

可变参数 可变参数:JDK1.5之后出现的新特性 使用前提: 当方法的参数列表数据类型已经确定,但是参数的个数不确定,就可以使用可变参数 使用格式:定义方法时使用 修饰符 返回值类型 方法名(数据类型… 变量名){} 可变参数的原理: 可变参数的底层就是一个数组,根据传递参数个数不同,会创建不同长度的数组,来存储这些参数 传递的参数个数,可以是0个1个2个多个。 注意:一个方法的参数列表,只能有一个可变参数 如果方法的参数有多个,那么可变参数必须写在参数列表的末尾 修饰符 返回值类型 方法名(arg

weixin_46373361的博客 276

从D3 00到FF FF:手把手解析RTCM3.2协议帧结构(附Python解析代码)

本文深入解析RTCM3.2协议帧结构,从同步头标识到CRC校验算法,详细讲解如何通过Python代码实现二进制数据解析。文章包含完整的RTCM3.2解析器实现,涵盖消息类型解码、CRC校验等关键步骤,并附赠特定消息类型(如1005型基准站坐标)的解析示例,帮助开发者快速掌握GNSS差分数据传输协议的核心技术。

weixin_42550052的博客 353

无需上下文,MCP新机制让大模型主动“提需”:节约 98% token 开销,并保持准确率基本不变!

值得注意的是,MCP 协议定义的服务器描述通常较为简洁。为了提升匹配效果,我们引入 Qwen2.5-72b-Instruct 模型,对所有服务器的原始资料(通常为 ReadMe 文档)进行总结提炼,参考其 capabilities、features、usage patterns 等要素,生成服务器的 summary 信息,作为相对详尽的描述文本用于匹配。然而,现有的 MCP 调用机制下,所有工具的描述信息都被注入大模型的系统提示词,导致了非常长的上下文开销,也为大模型的表现带来了影响,降低了模型的性能。

我爱计算机视觉 1175

如何使用传统图像处理方法进行圆的检测和测量

1 引言 上一篇使用传统方法进行石头检测的文章,受到了大家一致的好评. 嗯嗯,应该是一致的好评! 今天我们来研究一个新的方向,如何使用传统方法来进行圆的检测. 如上图所示,存在多个形状各异的物体,这里原型物体只有两个左下角的白色药片,这里我们需要用图像处理的方法来检测出两个圆形物体,并计算圆形物体相应的面积. 2 解决方案 2.1 二值化 传统图像分割一般采用阈值分割的方法来区分前景和背景,这里我们采用OTSU的方法来进行二值化操作,方法如下: image_file = './images/pillset

sgzqc的专栏 4845

修改注册表导致开机时电脑显示“无法登陆到你的账户”的问题解决方案

1.问题描述:开机电脑显示“无法登陆到你的账户:通常可以通过从你的账户注销,然后重新登陆来解决问题,如果不立即注销,你创建的任何文件或进行的任何更改都将会丢失。” 2.问题原因:想要修改cmd中的用户名(红色部分),修改了注册表,重启时出现问题。 3.问题解决: win+R输入cmd,确定进入注册表界面,将下面的地址复制进地址栏(你也可以自己按目录查找),双击ProfileImage...

qq_33835957的博客 7万+

OpenCV+python:圆检测

1,圆检测基本原理 对霍夫变换有了这样一种理解-----实际上就是坐标变换,是一种数学上的变换,然后再转换到参数坐标系进行讨论,最终确定待检测圆(或者其他形状)的数学方程。在极坐标系下,圆的数学表达式如下: 类似于霍夫变换直线检测,这里我们也定义一个累加器,但是与直线检测不同的是,直线检测参数是二维的,而圆的参数是三维的。如果一个圆上的点,都沿着其梯度方向画线,那么所有线的角点就是圆心。OpenC...

qq_43660987的博客 6067

CoppeliaSim远程API实战:用Python控制仿真机器人,5步搞定外部通信

本文详细介绍了如何使用Python通过CoppeliaSim远程API控制仿真机器人,实现外部通信的5个关键步骤。从环境配置到双向通信模式,再到实战案例和性能优化技巧,帮助开发者高效连接算法开发与物理验证。特别对比了B0与传统API的性能差异,提升工业自动化项目的开发效率。

weixin_28733637的博客 369

单片机OTA升级:Bootloader如何多重校验保障APP完整性?

本文详细介绍了单片机OTA升级中Bootloader如何通过CRC校验、数字签名、版本比对和存储位置检查等多重校验机制保障APP完整性。CRC校验作为快速检测数据完整性的核心手段,结合其他安全措施有效防止设备变砖和安全漏洞,确保远程升级的可靠性。

l3m4n的博客 981

opencv-python实现虹膜瞳孔内外圆检测

一、霍夫变换 本文主要介绍霍夫变换检测直线和圆的原理。 霍夫变换是图像处理中从图像中识别几何形状的基本方法之一,应用很广泛,也有很多改进算法。主要用来从图像中分离出具有某种相同特征的集合图像(如,直线,圆等)。最基本的霍夫变换是从黑白图像中检测直线(线段)。 1、直线检测 1.1 直线的表示方式 对于平面中的一条直线,在笛卡尔坐标系中,常见的有两点式,点斜式表示方式。然而在Hough变换中,考虑的是另外一种表示方式:使用(r,θr,\thetar,θ)来表示一条直线。其中,r为该直线到原点的距离,来表示一条

LitraLIN的博客 8449

Linux系统故障排查思路实践教程(上)

本文主要介绍了Linux系统日志分析与常见故障排查的实用方法。首先从系统日志的分类及其涉及的日志文件进行说明;其次详细讲解了忘记用户密码的解决方案;接着对系统无法启动问题,提供了异常断电后修复文件系统、/etc/fstab文件丢失恢复等常见故障的处理方案。最后介绍了文件系统只读错误的排查思路和修复方法,包括磁盘空间检查、文件系统修复等实用技巧。全文提供了大量具体命令和操作流程,为Linux系统维护人员提供了实用的故障处理指南。

提供C#相关开发 、云计算、运维测试、网络安全相关技术分享与服务,有意向可联系。 331

python+opencv圆检测

霍夫圆检测对噪声比较敏感,所有进行霍夫圆检测的时候要先进行中值滤波。 在OpenCV中是通过图像梯度来实现霍夫变换圆检测的,因此要选用cv2.HOUGH_GRADIENT这个参数。 其实现分为两步: 检测图像边缘,发现可能的圆心 从候选圆心中计算最佳半径大小 import cv2 import numpy as np smarties = cv2.imread(r"F:\Python\pict...

qq_40456669的博客 5497

AI智能体在零售行业的5大变革性应用

本文旨在全面介绍AI智能体在零售行业的关键应用场景,分析其技术原理和商业价值,帮助读者理解这些技术如何改变传统零售模式。文章将从核心概念入手,逐步深入五大应用场景的技术实现,最后探讨未来趋势和挑战。AI智能体:能够感知环境、做出决策并执行行动的智能软件实体机器学习:让计算机从数据中学习模式而无需显式编程的技术深度学习:基于神经网络的机器学习方法,能够处理复杂模式识别核心概念回顾AI智能体是零售数字化转型的关键驱动力从推荐系统到库存管理,AI正在重塑每个零售环节。

AI 原生应用开发的博客 1352

深度学习笔记——Transformer

本文详细介绍面试过程中可能遇到的Transformer知识点。

haopinglianlian的博客 1706

教你用OpenCV 和 Python实现圆物检测

点击上方“码农的后花园”,选择“星标”公众号精选文章,第一时间送达基于python使用OpenCV实现在一张图片中检测出圆形,并且根据圆检测结果信息,绘制 标记出圆的边界和圆心。1 Ho...

哆啦A梦爱学习的博客 7667

jre9下载 jdk9

(Java SE Runtime Environment 9.0) 9.0u175 官方最新版 【x86|x64】

OpenCV---圆检测

OpenCV—圆检测  推文:Opencv2.4.9源码分析——HoughCircles    霍夫圆检测 加载一幅图像并对其模糊化以降噪 对模糊化后的图像执行霍夫圆变换 . 在窗体中显示检测到的圆. def detect_circle_demo(image): # dst = cv.bilateralFilter(image, 0, ...

zhuyong006的博客 5191

假人有限元模型

假人模型,车辆碰撞假人有限元模型,适合做乘员安全的研究者利用

ET2012新版免狗免安装绿色软件

ET2012新版免狗免安祖昂绿色软件。,新界面,新视觉,

Python opencv图像处理基础总结(六) 直线检测 圆检测 轮廓发现

opencv图像处理,直线检测、圆检测、轮廓发现的基本操作。

叶庭云 成为自己的光 5317

ssm框架搭建

这个是一个在idea上成功跑起来的ssm框架项目,保存在这里方便以后使用直接下载

python-opencv之圆检测

opencv的HoughCircles函数可用来检测圆,它与使用houghLines函数类似。与HoughLines中用来决定删除或保留直线的两个参数minLineLength和maxLineGap一样,HoughCircles有一个圆心之间的最小距离和圆的最小最大半径。 import os import cv2 import numpy as np image = cv2.imread('1.png') gray = cv2.cvtColor(image, cv2.COLOR_BGR2GRAY) g

xddwz的博客 2329

OpenCV for Python之直线检测与圆检测

OpenCV for Python之直线检测与圆检测1 直线检测2 圆检测3 其他形状的检测: Opencv4官方文档:https://docs.opencv.org/2.4.4-beta/ Opencv4 for Python中文文档点击下载:OpenCV4 for Python 中文文档 1 直线检测 api: cv.HoughLines(image, rho, theta, threshold, lines=None, srn=None, stn=None, min_theta=None, max_t

郑德帅 1738
上一篇: 【pytorch】安装对应版本【torchvision】以及torchvision安装(pytorch 1.0.0 --->torchvision 0.2.2)
下一篇: 【OpenCv 4 Python 3.7】直线检测
YL_python_C++_java
博客等级 码龄7年 1392粉丝 142原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值