python + opencv图像处理——圆检测

MATLAB示例——图像中圆的识别与判断 目录一、基本介绍二、程序代码2.1 加载图像2.2 灰度化与二值化2.3 形态学处理2.4 寻找边界2.5 确定圆形对象 一、基本介绍 本案例将介绍检测图像中的圆并判断其圆度。 二、程序代码 2.1 加载图像 加载图像代码如下: I = imread('pillsetc.png'); figure(1),imshow(I);%显示原始图像 运行效果如下: 2.2 灰度化与二值化 灰度化与二值化代码如下: I2 = rgb2gray(I);%灰度化 bw = imbinarize(I2);%二值化 fig 阅读详情

霍夫圆检测原理
1、从平面坐标到极坐标转换三个参数C(x0,y0,r),其中x0,y0是圆心;
2、假设平面坐标的任意一个圆上的点,转换到极坐标中,C(x0,y0,r)处有最大值,霍夫变换正是利用这个原理实现圆检测;
3、因为霍夫圆检测对噪声比较敏感,所以首先要对图像做中值滤波;
4、基于效率考虑,opencv中实现的霍夫变换圆检测是基于图像梯度的实现,分为两步:
①检测边缘,发现可能的圆心;
②基于第一步的基础上从候选圆心开始计算最佳半径大小;

x = a + Rcos(θ)

y = b + Rsin(θ)

from matplotlib import pyplot as plt 
from cv2 import cv2 as cv
import numpy as np 

def detect_circles_demo(image):
    #边缘保留滤波   #也可用高斯滤波
    dst = cv.pyrMeanShiftFiltering(image,10,100)
    '''
    scr:输入的8比特,3信道图像
    dst:和源图像相同大小、格式的输出图像
    sp:空间窗的半径
    sr:色彩窗的半径
    '''
    cimage = cv.cvtColor(dst,cv.COLOR_BGR2GRAY)
    circles = cv.HoughCircles(cimage,cv.HOUGH_GRADIENT,1,20,param1=50,param2=28,minRadius=0,maxRadius=0)
    circles1 = np.uint16(np.around(circles))#转换成整数
    for i in circles1[0,:]:
        cv.circle(image,(i[0],i[1]),i[2],(0,0,255),2)#画圆
        cv.circle(image,(i[0],i[1]),2,(255,0,0),2)#圆心
    cv.imshow("circles",image)

if __name__ == "__main__":
    filepath = "C:\\pictures\\Test paper\\unqualified\\unqualifed-1.jpg"
    img = cv.imread(filepath)       # blue green red
    cv.namedWindow("input image",cv.WINDOW_AUTOSIZE)
    cv.imshow("input image",img)

    detect_circles_demo(img)

    cv.waitKey(0)
    cv.destroyAllWindows()

结果如下:
在这里插入图片描述

【OpenCV】高精度识别圆(支持复杂场景下的圆) 使用 OpenCV 霍夫变换-圆检测,对周围背景比较敏感,容易误识别,不受控。若你也有此困惑,建议试试本文中的方法,识别效果佳,能够很好地排除类圆矩形的干扰。 阅读详情

相关推荐

实战 | OpenCV中更稳更快的找圆方法--EdgeDrawing使用演示(详细步骤 + 代码)

本文主要介绍如何在OpenCV中使用EdgeDrawing模块查找圆(详细步骤 + 代码)。

CV_Home的博客 4380

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

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

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

python-opencv 图像处理基础 (九)图像梯度+边缘检测+直线检测+圆检测+轮廓检测+对象测量

在二阶导数的时候,最大变化处的值为0即边缘是零值。通过二阶导数计算,依据此理论可以计算图像二阶导数,提取边缘。scharr 进行边缘增强后的梯度提取,提取弱边缘 ,噪声敏感,需要降噪。x和y方向最终结果很好的反应了像素梯度变化差异。一阶导数与sobel算子。一阶导数与sobel算子。二阶导数与拉普拉斯算子。.....................

冰雪棋书的博客 3459

OpenCV+python:圆检测

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

qq_43660987的博客 6067

Python3与OpenCV3.3 图像处理(二十)--圆检测

这节同样是代码,代码比较简单,基本上都能看懂 import cv2 as cv import numpy as np def detect_circles(img): dst=cv.pyrMeanShiftFiltering(img,10,100) cimg=cv.cvtColor(dst,cv.COLOR_BGR2GRAY) circles=cv....

喵叔 3365

红米12C刷机避坑指南:NV数据损坏的修复与系统版本选择

本文提供了红米12C刷机过程中避免NV数据损坏的详细指南,涵盖系统版本选择、SP刷机工具使用和fastboot命令修复。重点分析了NV数据损坏的原因与表现,并给出通过工程固件和深度修复技巧解决基带未知、IMEI丢失等问题的实操方案,帮助用户安全完成刷机。

cuda7parallel的博客 1075

Python+OpenCV图像处理之圆检测

霍夫变换不仅可以用来检测直线,同样也可以用来检测圆 python实现 import cv2 import numpy as np __author__ = "boboa" def detect_circles_demo(image): dst = cv2.pyrMeanShiftFiltering(image, 10, 100) # 均值偏移滤波 ...

weixin_30493321的博客 1431

IC版图设计之OASIS文件格式详解

OASIS(Open Artwork System Interchange Standard)是继GDSII之后新一代的集成电路版图数据交换标准,由SEMI在2004年正式发布(SEMI标准号:SEMI P39)。高压缩率:相比GDSII可减少3-10倍文件体积扩展性强:支持纳米级工艺的复杂图形描述跨平台兼容:独立于EDA工具和操作系统安全增强:内置校验和与加密支持。

ZZcppc的博客 2448

python 圆形检测_Python+OpenCV图像处理之圆检测

霍夫变换不仅可以用来检测直线,同样也可以用来检测圆python实现importcv2importnumpy as np__author__ = "boboa"defdetect_circles_demo(image):dst= cv2.pyrMeanShiftFiltering(image, 10, 100) #均值偏移滤波cimage =cv2.cvtColor(dst, cv2.COLOR_...

weixin_39977136的博客 880

OpenBCI脑电帽硬件DIY与低成本搭建实战

本文详细介绍了如何通过第三方兼容硬件和开源设计,低成本DIY一套功能完备的OpenBCI脑电采集系统。从硬件选购、组装、软件配置到信号调试,提供了完整的实战指南,将总成本控制在千元级别,使脑机接口技术对爱好者、学生和研究者变得更加触手可及。

weixin_29322855的博客 792

基于AIS动态数据与AI结合得经纬度标示算法

港口船舶智能标注系统 本系统通过结合摄像头视频流和AIS船舶动态数据,利用AI技术实现船舶实时标注功能。系统架构包括视频流处理、AIS数据解析、船舶检测匹配和坐标映射转换等模块。关键技术步骤: AIS数据获取:通过本地接收机或网络API获取船舶位置、航速等信息 AI目标检测:采用YOLOv8等模型识别视频中的船舶 船舶匹配算法:通过位置投影或运动轨迹匹配视频目标与AIS数据 坐标映射:使用相机标定技术将经纬度转换为图像坐标 实时标注:在视频画面上叠加船名、位置等关键信息 应用场景包括港口监控、智能海事管理和

qianbo042311的博客 1810

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

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

叶庭云 成为自己的光 5317

强化学习-----DQN(Deep Q-network)

DQN(Deep Q-Network)是一种基于深度学习和强化学习的算法,由DeepMind提出,用于解决离散动作空间下的马尔科夫决策过程(MDP)问题。它是首个成功将深度学习应用于解决强化学习任务的算法之一。DQN,即深度Q网络(Deep Q-network),是指基于深度学习的Q-Learing算法。那什么是Q-leaning?可以看上一篇文章Q-learning是一种经典的强化学习算法,用于解决马尔可夫决策过程(Markov Decision Process,MDP)中的控制问题。

qq_74722169的博客 2万+

Python+OpenCV图像处理(十五)—— 圆检测

简介: 1.霍夫圆变换的基本原理和霍夫线变换原理类似,只是点对应的二维极径、极角空间被三维的圆心和半径空间取代。在标准霍夫圆变换中,原图像的边缘图像的任意点对应的经过这个点的所有可能圆在三维空间用圆心和半径这三个参数来表示,其对应一条三维空间的曲线。对于多个边缘点,点越多,这些点对应的三维空间曲线交于一点的数量越多,那么他们经过的共同圆上的点就越多,类似的我们也就可以用同样的阈值的方法...

aiyizou6070的博客 960

QCC308x/3095收发一体:TX/RX双模一拖二与多编码广播实战解析

本文深度解析高通QCC308x/3095蓝牙音频芯片的TX/RX双模功能与广播应用。芯片支持发射和接收模式下的“一拖二”连接,并能实现LE Audio多设备广播,显著提升多设备音频切换体验与商业广播能力,适用于健身、导览等丰富场景。

g9h0i1的博客 1008

40、5G NR射频要求解析

本文详细解析了5G NR射频相关要求,包括参考灵敏度与动态范围的定义、接收机对干扰信号的抗扰性要求(如阻塞、邻道选择性等)、辐射射频要求在FR1和FR2频段的差异,以及多标准无线电基站(MSR)的发展及其对射频要求的影响。内容涵盖测试模型、干扰场景、具体指标和实现挑战,为理解和应用5G NR射频规范提供了全面指导。

qsc901234的博客 245

python绘制实心圆_Python+OpenCV图像处理之圆检测

霍夫变换不仅可以用来检测直线,同样也可以用来检测圆python实现importcv2importnumpy as np__author__ = "boboa"defdetect_circles_demo(image):dst= cv2.pyrMeanShiftFiltering(image, 10, 100) #均值偏移滤波cimage =cv2.cvtColor(dst, cv2.COLOR_...

weixin_39662263的博客 1485

手把手教你用ESP32-S3打造智能聊天机器人-立创实战派

本文将详细介绍如何利用立创ESP32-S3开发板,烧录小智AI程序,快速实现一个功能强大的聊天机器人。

举世誉之而不加劝,举世非之而不加沮,定乎内外之分,辩乎荣辱之境,斯已矣。 9923

opencv-python 图像处理 —— 直线与圆检测

直线检测,使用HoughLines和HoughLinesP函数完成 cv2.HoughLineP()的参数为 代码实例 import cv2 import numpy as np img = cv2.imread('line-cycle.png') gray = cv2.cvtColor(img, cv2.COLOR_BGR2GRAY) edges = cv2.Canny(gray, 50, ...

姬小野的博客 1414

VC中sqlite的使用

在VC中对sqlite的使用,实现数据库大批数据的快速插入,读取数据库中的数据在ListCtrl中显示

efm32 入门.pdf

本PDF共计22页,介绍的是操作驱动API,下载与否自己斟酌。

《OpenCv视觉之眼》Python图像处理二十二:Opencv图像处理实战五之图像中直线和圆的检测原理及实现

本专栏主要介绍如果通过OpenCv-Python进行图像处理,通过原理理解OpenCv-Python的函数处理原型,在具体情况中,针对不同的图像进行不同等级的、不同方法的处理,以达到对图像进行去噪、锐化等一系列的操作。同时,希望观看本专栏的小伙伴可以理解到OpenCv进行图像处理的强大哦,如有转载,请注明出处(原文链接和作者署名),感谢各位小伙伴啦! 前文参考: 《OpenCv视觉之眼》Python图像处理一 :Opencv-python的简介及Python环境搭建 《OpenCv视觉之眼》Python图像

qq_42451251的博客 1391

WINCC7.3破解文件

WINCC7.3硬件够破解文件,有需要的下载!WINCC7.3硬件够破解文件,有需要的下载!

python 圆形检测_Python+OpenCV图像处理(十五)—— 圆检测

简介:1.霍夫圆变换的基本原理和霍夫线变换原理类似,只是点对应的二维极径、极角空间被三维的圆心和半径空间取代。在标准霍夫圆变换中,原图像的边缘图像的任意点对应的经过这个点的所有可能圆在三维空间用圆心和半径这三个参数来表示,其对应一条三维空间的曲线。对于多个边缘点,点越多,这些点对应的三维空间曲线交于一点的数量越多,那么他们经过的共同圆上的点就越多,类似的我们也就可以用同样的阈值的方法来判断一个圆是...

weixin_39935319的博客 942

TMS_WebGMaps_1.9.8.0_Full_Source

TMS_WebGMaps_1.9.8.0_Full_Source 全源码 delphi cbuilder

opencv进阶学习笔记11:cannny边缘检测,直线检测,圆检测

基础版笔记传送门 python3+opencv学习笔记汇总目录(适合基础入门学习) cannny边缘检测 基础版边缘讲解链接: opencv学习笔记18:canny算子边缘检测原理及其函数使用 1cannny算法介绍 非极大值抑制:在获得梯度和方向,去除所有不是边界的点。实现方向:逐渐遍历像素点,判断当前像素点是否是周围像素点中具有相同方向梯度的最大值。是保留,不是则为0. cannny代码实现 edges=cv2.Canny(image,threshold1,threshold2) edges:处理

总裁余(余登武)博客 6558

Python+OpenCV(十一)——直线检测、圆检测

Python+OpenCV(十一)——直线检测、圆检测 学习视频:python+opencv3.3视频教学 基础入门 其他学习记录: Python+OpenCV(一)——基础操作 Python+OpenCV(二)——Numpy模块 Python+OpenCV(三)——色彩空间 Python+OpenCV(四)——像素运算 Python+OpenCV(五)——ROI和泛洪填充 Python+OpenCV(六)——均值/中值/自定义/高斯模糊、高斯噪声处理、高斯双边滤波 Python+OpenCV(七)——直方

Cat_South_North的博客 666
上一篇: python + opencv图像处理(十九)——边缘提取
下一篇: python + opencv图像处理——轮廓发现
xiao黄
xiao黄 优质创作者: 人工智能技术领域 优质创作者: 人工智能技术领域 领域专家: 数据科学与机器学习技术领域 领域专家: 数据科学与机器学习技术领域
博客等级 码龄8年 1万+粉丝 250原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

xiao黄

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值