当前位置: 首页 > news >正文

opencv-Hough 圆环变换

Hough 圆环变换(Hough Circle Transform)是一种用于在图像中检测圆环的技术。与 Hough 直线变换类似,它通过在参数空间中表示图像中的圆环,将圆环检测问题转换为参数空间的累加问题。OpenCV 提供了 cv2.HoughCircles() 函数来执行 Hough 圆环变换。

cv2.HoughCircles()

circles = cv2.HoughCircles(image, method, dp, minDist, param1, param2, minRadius=0, maxRadius=0)

参数说明:

  • image: 输入的灰度图像
  • method: 圆环检测的方法。目前 OpenCV 中只支持 cv2.HOUGH_GRADIENT,表示使用基于梯度的检测方法。
  • dp: 累加器分辨率与图像分辨率的倒数比。如果设置为1,累加器的分辨率与图像分辨率相同;如果大于1,累加器的分辨率小于图像分辨率。
  • minDist: 检测到的圆之间的最小距离。
  • param1: Canny 边缘检测的高阈值。
  • param2: 圆心累加器的阈值。只有当某个圆的累加值高于该阈值时,该圆才会被检测到。
  • minRadius: 检测的圆的最小半径。
  • maxRadius: 检测的圆的最大半径。

返回值:

  • circles: 检测到的圆的参数。每行表示一个检测到的圆,包括圆心的坐标和半径。

以下是一个简单的示例,演示如何使用 Hough 圆环变换检测图像中的圆环:

import cv2
import numpy as np
import matplotlib.pyplot as plt# 读取图像并转换为灰度
img = cv2.imread( r"C:\Users\mzd\Desktop\opencv\3.jpg")
gray = cv2.cvtColor(img, cv2.COLOR_BGR2GRAY)# 高斯模糊
blurred = cv2.GaussianBlur(gray, (9, 9), 2)# 执行 Hough 圆环变换
circles = cv2.HoughCircles(blurred, cv2.HOUGH_GRADIENT, dp=1, minDist=50, param1=50, param2=30, minRadius=10, maxRadius=100)# 将检测到的圆心坐标和半径转换为整数
circles = np.uint16(np.around(circles))# 在原图上绘制检测到的圆环
for i in circles[0, :]:cv2.circle(img, (i[0], i[1]), i[2], (0, 255, 0), 2)  # 绘制圆环cv2.circle(img, (i[0], i[1]), 2, (0, 0, 255), 3)  # 绘制圆心# 显示原图和检测到的圆环
plt.figure(figsize=(10, 5))plt.subplot(121), plt.imshow(cv2.cvtColor(img, cv2.COLOR_BGR2RGB))
plt.title('Original Image with Circles'), plt.axis('off')plt.subplot(122), plt.imshow(blurred, cmap='gray')
plt.title('Blurred Image'), plt.axis('off')plt.show()

在这里插入图片描述

在这里插入图片描述

在这个示例中,我们首先读取了一幅图像,将其转换为灰度图像,然后对图像进行高斯模糊。接着,使用 cv2.HoughCircles() 函数进行 Hough 圆环变换,并在原图上绘制检测到的圆环。最后,通过 Matplotlib 显示原图和模糊图像。

相关文章:

opencv-Hough 圆环变换

Hough 圆环变换(Hough Circle Transform)是一种用于在图像中检测圆环的技术。与 Hough 直线变换类似,它通过在参数空间中表示图像中的圆环,将圆环检测问题转换为参数空间的累加问题。OpenCV 提供了 cv2.HoughCircles() 函数来执行…...

福州大学《嵌入式系统综合设计》实验五:图像裁剪及尺寸变换

一、实验目的 在深度学习中,往往需要从一张大图中裁剪出一张张小图,以便适应网络输入图像的尺寸,这可以通过bmcv_image_crop函数实现。 实践中,经常需要对输入图像的尺寸进行调整,以适用于网络输入图片尺寸&#xff0…...

LLM之Prompt(二):清华提出Prompt 对齐优化技术BPO

论文题目:《Black-Box Prompt Optimization: Aligning Large Language Models without Model Training》 论文链接:https://arxiv.org/abs/2311.04155 github地址:https://github.com/thu-coai/BPO BPO背景介绍 最近,大型语言模…...

chatglm3部署使用

chatglm3部署使用 1.部署2.使用3.接入微信4.vue前端 1.部署 1.首先去github下载chatglm3代码。Huggingface下载模型一直失败,所以用阿里的魔塔社区下载。 git clone https://github.com/THUDM/ChatGLM3.git git clone https://www.modelscope.cn/ZhipuAI/chatglm3…...

Android扫码ZXing

1. 获取权限 请注意动态申请及重写申请结果返回方法。 <uses-permission android:name"android.permission.CAMERA"/> 2. 添加依赖 //Gradle Scripts -> build.gradle(Module:app) implementation com.google.zxing:core:3.4.1 implementation com.jour…...

求解Beamforming-SOCP(CVX求解)

时间&#xff1a;2023年11月23日14:00:16&#xff1a; 直接上代码&#xff08;辛苦两天才改出来的&#xff09; clear all; K 4; %user number N4; %base station number var1e-9; H []; %initialize H matrix for i1:Kh 1/sqrt(2*K)*mvnrnd(zeros(N,1),eye(N),1)1i/sqrt(2*…...

解决Vue项目的runtime-only转为runtime-compiler

我们在vue.config.js中添加上 runtimeCompiler: true,然后再将main.js入口文件中的Vue实例改为以下即可 //修改前 new Vue({router,store,render: (h) > h(App) }).$mount(#app) //修改后 new Vue({el:#app,router,store, components:{App}, template:<App/>})...

hash模式和history模式

在Vue Router中&#xff0c;有两种路由模式可供选择&#xff1a;hash模式和history模式。它们各自有一些优点和缺点&#xff0c;下面是它们的简要介绍&#xff1a; hash模式的原理是通过hashchange事件&#xff0c;通过监听hash变化来驱动界面变化。它的url中有 # 号 1、监听…...

聊聊logback的LevelFilter

序 本文主要研究一下logback的LevelFilter AbstractMatcherFilter ch/qos/logback/core/filter/AbstractMatcherFilter.java public abstract class AbstractMatcherFilter<E> extends Filter<E> {protected FilterReply onMatch FilterReply.NEUTRAL;protect…...

mysql 行转列 GROUP_CONCAT 试验

1.概要 很多时候需要用到行专列的方式做数据分析。比如对通讯数据的采集 数据采集结果如下&#xff1a; 变量值采集周期131251132272 我想要看的结果 变量1变量2采集周期351372 就是我想看到相关数据的周期变化情况。 2.试验 2.1创建数据如下&#xff08;表名 tb5&…...

HarmonyOS元服务开发实战—端云一体化开发

还记得我第一次接触arkui还是在22年的9月份&#xff0c;当时arkui还在一个比较初试的阶段。时隔一年再见方舟框架&#xff0c;它已经发生了令人瞩目的变化&#xff0c;不得不说华为方舟框架在更新迭代的速度已经遥遥领先。新的功能和性能优化让这个框架更加强大和灵活&#xff…...

【搭环境】装Python3.8 open3d

先装Python3.8 方法一试了找不到Python3.8的库&#xff0c;所以用方法二装上了。 Python3加入环境变量 更改Python默认指向 open3d需要Python3.6以上&#xff0c;最好用Ubuntu18版本&#xff0c;我用的16版本。。...

【C语言】深入解开指针(四)

&#x1f308;write in front :&#x1f50d;个人主页 &#xff1a; 啊森要自信的主页 ✏️真正相信奇迹的家伙&#xff0c;本身和奇迹一样了不起啊&#xff01; 欢迎大家关注&#x1f50d;点赞&#x1f44d;收藏⭐️留言&#x1f4dd;>希望看完我的文章对你有小小的帮助&am…...

AMEYA360:瑞萨面向高端工业传感器系统推出高精度模拟前端的32位RX MCU

全球半导体解决方案供应商瑞萨电子&#xff08;TSE&#xff1a;6723&#xff09;宣布面向高端工业传感器系统推出一款全新RX产品——RX23E-B&#xff0c;扩展32位微控制器&#xff08;MCU&#xff09;产品线。新产品作为广受欢迎的RX产品家族的一员&#xff0c;具有高精度模拟前…...

切面Aspect + 策略模式实现待办提醒功能

1.背景 产品需要实现一个待办提醒功能&#xff0c;就是核心业务发生变更即提醒业务员去处理相关业务。譬如&#xff1a;订单上传了支付凭证&#xff0c;那么就会提醒相关业务员去待办列表操办。 2.表设计 其实表设计主要是两张表sys_todo、sys_todo_detail 一张是待办核心表…...

SAP 调取http的x-www-form-urlencoded形式的接口

一、了解下x-www-form-urlencoded形式对于SAP来说有啥区别 简单来说&#xff0c; 1.raw格式就是标准的json格式&#xff1a;{“Name”:“John Smith”&#xff0c;“Age”: 23} 2.x-www格式是要转化一下的&#xff1a;NameJohnSmith&Age23 字段与字段相互连接要用 & 符…...

thingsboard3.6的mailConfigTemplateController错误

1、bug内容 使用3.6版本的tb代码进行打包生成boot的jar包,在启动的时候会报错mailConfigTemplateController bean初始化找不到文件路径。 Error creating bean with name mailConfigTemplateController defined in URL [jar:file:/D:/yuxinwei/AE/thingsboard/thingsboard-3…...

Go语言中获取IP

简介 在net包中提供了获取所有网卡的ip&#xff0c;一般不会用127.0.0.1,::1这样的本地回环地址&#xff0c;可以过滤掉&#xff0c;如果想要获取当前真正在使用的地址&#xff0c;得通过net.Dail去连一下才知道 获取ip地址 func main() {fmt.Println(getIpv4())fmt.Println…...

【Computer Vision Foundation】全球计算机视觉基金会论文网

计算机视觉基金会&#xff08;Computer Vision Foundation&#xff0c;简称CVF&#xff09;是一个致力于推动计算机视觉领域研究和发展的组织。以下是关于计算机视觉基金会的一些基本信息&#xff1a; 成立目的&#xff1a; CVF成立的目的是促进计算机视觉领域的学术研究、技术…...

计网(复习自用)

计算机网络 1.概述 1.1概念 含义 计算机网络&#xff1a;是一个将分散的。具有独立功能的计算机系统&#xff0c;通过通信设备和线路连接起来&#xff0c;由功能完善的软件实现资源共享和信息传递的系统。 简单点说&#xff0c;计算机网络是互联的&#xff0c;自治的计算机集…...

Sage智能体平台:从LLM到生产级自动化工作流的工程实践

1. 项目概述&#xff1a;从复杂任务到可靠交付的智能体平台如果你和我一样&#xff0c;在过去几年里深度参与过AI应用开发&#xff0c;特别是基于大语言模型&#xff08;LLM&#xff09;的智能体&#xff08;Agent&#xff09;项目&#xff0c;那你一定体会过那种“理想很丰满&…...

多智能体工作流框架:从概念到实践,构建AI自动化系统

1. 项目概述&#xff1a;当AI代理开始“组队打怪”最近在AI应用开发圈里&#xff0c;一个叫pwnk77/agentic-workflows的项目热度不低。乍一看&#xff0c;这名字有点“极客范儿”——pwnk77是作者&#xff0c;agentic指向“智能代理”&#xff0c;workflows则是“工作流”。合起…...

Windows文件校验革命:HashCheck右键菜单如何让数据验证变得简单如点击?

Windows文件校验革命&#xff1a;HashCheck右键菜单如何让数据验证变得简单如点击&#xff1f; 【免费下载链接】HashCheck HashCheck Shell Extension for Windows with added SHA2, SHA3, and multithreading; originally from code.kliu.org 项目地址: https://gitcode.co…...

NVIDIA WJH技术:网络故障诊断的革命性解决方案

1. 网络诊断新利器&#xff1a;NVIDIA WJH技术解析在数据中心和云计算环境中&#xff0c;网络问题排查一直是运维团队最头疼的挑战之一。记得去年我们团队处理过一个典型的案例&#xff1a;某AI训练集群性能突然下降30%&#xff0c;传统监控工具显示所有链路都"健康"…...

Platinum-MD:三分钟掌握高品质MiniDisc音乐传输的终极指南

Platinum-MD&#xff1a;三分钟掌握高品质MiniDisc音乐传输的终极指南 【免费下载链接】platinum-md Minidisc NetMD Conversion and Upload 项目地址: https://gitcode.com/gh_mirrors/pl/platinum-md Platinum-MD是一款专为NetMD MiniDisc设备设计的现代化音乐管理工具…...

HPH三大系统:从液力到辅助全面解读

针对HPH设备那极为关键起到重大作用无可替代的三大关键系统&#xff0c;你是不是清晰知晓其到底是通过怎样的方式构成的呢&#xff1f;深入地去了解并且熟练地掌握这些知识&#xff0c;对于能够轻松地应对日常操作&#xff0c;以及能够妥善地去解决维护过程当中所遭遇到的难题&…...

【2026最新】Arduino IDE下载安装汉化保姆级教程(附安装包)

简介&#xff1a; Arduino IDE是全球最易用的开源单片机开发环境&#xff0c;专为初学者设计&#xff0c;支持Win/macOS/Linux全平台&#xff0c;免费开源。界面简洁、汉化便捷&#xff0c;配套教程丰富&#xff0c;兼容海量硬件与项目&#xff0c;助电子爱好者、学生和创客快…...

告别串口线!用两个HC-05蓝牙模块给STM32远程升级固件(保姆级避坑指南)

无线升级革命&#xff1a;HC-05蓝牙模块在STM32固件更新中的实战解析 当你的嵌入式设备被安装在旋转机械臂末端、密封配电箱或高空气象站时&#xff0c;拖着串口线升级固件的场景是否让你抓狂&#xff1f;两个总价不到50元的HC-05蓝牙模块&#xff0c;配合Ymodem协议&#xff0…...

升级鸿蒙6后,大家担心的痛点都搞定啦!真香!

朋友们&#xff0c;被用户追着说“还不去适配鸿蒙”的产品经理委托我发篇贴。 最近我在各大极客论坛看到好多鸿蒙6先锋用户在担心&#xff1a;鸿蒙6是真流畅&#xff0c;但你们升级后最怕的不是“卡”&#xff0c;而是“空”——书架空了、网盘空了、连看视频的快乐都没了。 …...

从晶圆到系统:TLP测试如何帮我们在流片前就“预判”芯片的ESD防护等级?

从晶圆到系统&#xff1a;TLP测试如何帮我们在流片前就“预判”芯片的ESD防护等级&#xff1f; 在芯片设计的漫长旅程中&#xff0c;流片前的验证环节往往是最令人忐忑的阶段。想象一下&#xff0c;当你花费数月时间精心设计的ESD防护电路&#xff0c;在流片后才发现无法通过HB…...