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 和各种跨语言客户端以及许多协议,包括…

DALLE 3技术分析 - 训练方式/模型结构

DALLE 3技术分析 - 训练方式/模型结构 1. 引言: 从 DALLE 3 开发者技术轨迹中,以及模型的演示视频,我们可以推导 DALLE 3 模型的某些架构信息。 2. DALLE 2 的评价: DALLE 2 的性能不佳,主要归因于 CLIP 模型的限制。 CLIP 在为后续的 diffus…

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

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

【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;我是全栈工…

可达矩阵-邻接矩阵-以及有向图的python绘制

参考1 自定义输入矩阵来绘制 根据参考代码&#xff0c; 自定义 代码如下&#xff1a; # 编程实现有向图连通性的判断 from pylab import mplmpl.rcParams[font.sans-serif] [SimHei] mpl.rcParams[axes.unicode_minus] False import numpy as np import networkx as nx imp…

2023大联盟8 比赛总结

比赛经历 有点忘了&#xff0c;稍微写一些 本来早上有 n f l s nfls nfls 的&#xff0c;但因为今天大联盟 T 1 T1 T1 是我们学校的题&#xff0c;于是写大联盟 第一题因为下午要我们讲&#xff0c;所以讨论了一下做法&#xff0c;个人感觉第一步把 a b a aba aba 拆成 …

批量新增报错PSQLException: PreparedStatement can have at most 65,535 parameters.

报错信息&#xff1a; org.postgresql.util.PSQLException: PreparedStatement can have at most 65,535 parameters. Please consider using arrays, or splitting the query in several ones, or using COPY. Given query has 661,068 parameters ; SQL []; PreparedStatemen…

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;机考的考试时间有所变…