OpenCV检测圆(Python版本)

文章目录

  • 示例代码
  • 示例结果
  • 调参

示例代码

import cv2
import numpy as np# 加载图像
image_path = 'DistanceComparison/test_image/1.png'
image = cv2.imread(image_path, cv2.IMREAD_COLOR)# 将图像转换为灰度
gray = cv2.cvtColor(image, cv2.COLOR_BGR2GRAY)# 使用高斯模糊消除噪声
# gray_blurred = cv2.GaussianBlur(gray, (9, 9), 2)# 应用霍夫变换进行圆检测
circles = cv2.HoughCircles(gray,cv2.HOUGH_GRADIENT, dp=1, minDist=40, param1=40, param2=3,  minRadius=12, maxRadius=20)# 如果找到了圆,输出圆的信息
if circles is not None:circles = np.uint16(np.around(circles))for i in circles[0, :]:# 绘制圆心cv2.circle(image, (i[0], i[1]), 1, (0, 100, 100), 3)# 绘制圆轮廓cv2.circle(image, (i[0], i[1]), i[2], (255, 0, 255), 2)cv2.imwrite("DistanceComparison/out_image/1.png", image)

示例结果

请添加图片描述

图1:检测到的圆(粉色表示)

调参

如果你没有得到预期的结果,你可以尝试调整一些参数来优化圆的检测。以下是一些常用的参数和调整方法:

  1. param1param2:这两个参数是Canny边缘检测的阈值。增加param1可以减少检测到的圆的数量,增加param2可以过滤掉较弱的圆。你可以尝试不同的值来找到适合你图像的阈值。

  2. minRadiusmaxRadius:这两个参数用于指定允许检测到的圆的最小和最大半径。如果你知道圆的大致大小范围,可以设置这两个参数来限制检测的范围。

  3. dp参数:这个参数是霍夫梯度法的累加器分辨率与图像分辨率的反比。较小的值可以提高检测的精度,但可能会增加计算时间。较大的值可以加快计算速度,但可能会降低检测的精度。你可以尝试不同的值来平衡速度和精度。

  4. 图像预处理:在进行Hough变换之前,你可以尝试进行一些图像预处理操作,例如调整对比度、直方图均衡化、图像增强等,以提高圆的检测效果。

  5. 图像尺寸:如果图像尺寸过大,可以考虑将图像缩小到适当的尺寸,以加快计算速度。

尝试调整这些参数,并根据你的具体图像和需求进行优化。记住,在调整参数时,可以通过显示中间结果来观察效果,例如显示Canny边缘检测结果、显示霍夫累加器等。这样可以帮助你更好地理解参数对结果的影响,并进行调整。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/130384.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

node插件express(路由)的基本使用(一)

文章目录 一、express的了解1.定义2.作用3.使用express的前提条件(1)如果是新文件夹需要薪资package.json文件,如果有就忽略(2)安装第三方依赖包(3)在使用的地方导入express 二、express的基本使…

Jetpack:028-Jetpack中的Card

文章目录 1. 概念介绍2. 使用方法2.1 主要类型2.2 其它类型 3. 示例代码4. 内容总结 我们在上一章回中介绍了Jetpack中Switch相关的内容,本章回中 主要介绍Card。闲话休提,让我们一起Talk Android Jetpack吧! 1. 概念介绍 我们在本章回中介…

node教程(四)Mongodb+mongoose

文章目录 一、mongodb1.简介1.1Mongodb是什么?1.2数据库是什么?1.3数据库的作用1.4数据库管理数据的特点 2.核心概念3.下载安装与启动4.命令行交互4.1数据库命令4.3文档命令 二、Mongoose1.介绍2.作用3.使用流程4.插入文档5.mongoose字段类型 一、mongod…

el-cascader级联选择器选中一个全选中问题

问题 只选中一个却把同级全选中 解决 :props中添加label、value、children属性 label、value、children属性值需要和后端返回的集合中的字段名保持一致 后端返回数据:

3000 台 Apache ActiveMQ 服务器易受 RCE 攻击

超过三千个暴露在互联网上的 Apache ActiveMQ 服务器容易受到最近披露的关键远程代码执行 (RCE) 漏洞的影响。 Apache ActiveMQ 是一个可扩展的开源消息代理,可促进客户端和服务器之间的通信,支持 Java 和各种跨语言客户端以及许多协议,包括…

网络安全(网络安全)小白自学

想自学网络安全(黑客技术)首先你得了解什么是网络安全!什么是黑客! 网络安全可以基于攻击和防御视角来分类,我们经常听到的 “红队”、“渗透测试” 等就是研究攻击技术,而“蓝队”、“安全运营”、“安全…

【Midjourney入门教程2】Midjourney的基础操作和设置

文章目录 Midjourney的常用命令和基础设置1、 /imagine2、 /blend3、 /info4、 /subscribe5、 /settings(Midjourney的基础设置)6、 /shorten 有部分同学说我不想要英文界面的,不要慌: 点击左下角个人信息的设置按钮,找…

网际控制报文协议ICMP

网际控制报文协议ICMP 一.网际控制报文协议ICMP概述 为了更有效地转发IP数据报以及提高IP数据报交付成功的机会,TCPIP体系结构的网际层使用了网际控制报文协议(Internet Control Message Protocol,ICMP)[RFC 792].主机或路由器使用ICMP来发送差错报告报…

图解系列--路由器和它庞大的功能

03.01 何为路由器 路由器是指主要负责 OSI参考模型中网络层的处理工作,并根据路由表信息在不同的网络 之间转发IP 分组的网络硬件(图3-1)。这里的网络一般是指IP 子网,也可以称为广播域。此外,现在的路由器还会搭载其他各种各样的功能。 0…

【ES专题】ElasticSearch搜索进阶

目录 前言阅读导航前置知识特别提醒笔记正文一、分词器详解1.1 基本概念1.2 分词发生的时期1.3 分词器的组成1.3.1 切词器&#xff1a;Tokenizer1.3.2 词项过滤器&#xff1a;Token Filter1.3.3 字符过滤器&#xff1a;Character Filter 1.4 倒排索引的数据结构 <font color…

IDEA中如何移除未使用的import

&#x1f468;&#x1f3fb;‍&#x1f4bb; 热爱摄影的程序员 &#x1f468;&#x1f3fb;‍&#x1f3a8; 喜欢编码的设计师 &#x1f9d5;&#x1f3fb; 擅长设计的剪辑师 &#x1f9d1;&#x1f3fb;‍&#x1f3eb; 一位高冷无情的编码爱好者 大家好&#xff0c;我是全栈工…

Oracle(10)Managing Undo Data

目录 一、基础知识 1、AUM :Init Parameters AUM:初始化参数 2、AUM:Other Parameters AUM:其他参数 3、AUM:Sizing an UNDO TS AUM:调整UNDOTS的大小 4、AUM :Undo Quota AUM:撤消配额 5、Get Undo Segment Info 获取撤消段信息 二、基础操作 1、AUM:UNDO Tablespace …

MySQL:至少参与xxx参与的全部事件(二)

MySQL&#xff1a;至少参与xxx参与的全部事件&#xff08;二&#xff09; – WhiteNights Site 标签&#xff1a;MySQL 本来不难的&#xff0c;结果实验课上又没能当场做出来。还是回到宿舍复盘才看到问题所在&#xff0c;令人感慨。 头歌例题 仔细审题 任务描述 创建一个名…

SpringBoot框架使用AOP + 自定义注解实现请求日志记录

一、SpringBoot记录日志 文章目录 一、SpringBoot记录日志1.1、环境搭建1.2、配置FastJson1.3、自定义LogRecord注解1.4、定义日志实体类1.5、创建HttpRequestUtil工具类1.6、定义AOP切面1.7、编写测试类1.8、运行测试 1.1、环境搭建 搭建SpringBoot工程。引入【spring-boot-st…

2023年软件系统架构师论文【回忆版】

2023年11月5日&#xff0c;全国计算机等级下半年考试&#xff0c;北京市软件架构师考试其中有个考点在首都经济贸易大学丰台校区&#xff09;&#xff0c;地址&#xff1a;北京市丰台区花乡张家路口121号&#xff08;北门入校&#xff09; 注意&#xff1a;机考的考试时间有所变…

BIOS开发笔记 - HDA Audio

在PC中,音频输出是一个重要的功能之一,目前大多数采用的是英特尔高清晰音效(英语:Intel High Definition Audio,简称为HD Audio或IHD)方案,它是由Intel于2004年所提出的音效技术,能够展现高清晰度的音质效果,且能进行多声道的播放,在音质(音效质量)上超越过去的其他…

FFmpeg 硬件加速视频转码指南

基于 Windows 下演示&#xff0c;Linux 下也可以适用。 所使用 ffmpeg 版本为 BtbN 编译的 win64-gpl 版&#xff08;非 gpl-share&#xff09;&#xff0c;项目地址&#xff1a;BtbN / FFmpeg-Builds 也可以使用 gyan.dev 编译的 git-full 版&#xff0c;地址&#xff1a;gyan…

【自动控制原理】时域分析法:一阶、二阶、高阶系统的时间响应及动态性能

文章目录 第3章 时域分析法3.1 基本概念3.1.1 典型输入信号3.1.2 系统动态性能指标 3.2 一阶系统的时间响应及动态性能一阶系统的标准形式&#xff08;尾1标准型&#xff09;3.2.1一阶惯性环节的单位阶跃响应3.2.2一阶惯性环节的单位速度响应3.2.3一阶惯性环节的单位脉冲响应3.…

【gpt redis】原理篇

用的黑马程序员redis课程的目录&#xff0c;但是不想听讲了。后续都是用gpt文档获取的。 1.课程介绍(Av766995956,P145) 2.Redis数据结构-动态字符串(Av766995956,P146) sds 1M是个界限 其实他是个由c语言实现的结构体 有这么几个参数 len alloc flag char[] len是实际长度 …