19 OpenCV 霍夫曼变换检测圆
文章目录
- cv::HoughCircles
- 算子参数
- 示例
cv::HoughCircles
因为霍夫圆检测对噪声比较敏感,所以首先要对图像做中值滤波。 基于效率考虑,Opencv中实现的霍夫变换圆检测是基于图像梯度的实现,分为两步:
- 检测边缘,发现可能的圆心
- 基于第一步的基础上从候选圆心开始计算最佳半径大小
算子参数
HoughCircles(
InputArray image, // 输入图像 ,必须是8位的单通道灰度图像
OutputArray circles, // 输出结果,发现的圆信息
Int method, // 方法 - HOUGH_GRADIENT
Double dp, // dp = 1;
Double mindist, // 10 最短距离-可以分辨是两个圆的,否则认为是同心圆- src_gray.rows/8
Double param1, // canny edge detection low threshold
Double param2, // 中心点累加器阈值 – 候选圆心
Int minradius, // 最小半径
Int maxradius//最大半径
)
示例
#include <iostream>
#include <opencv2/opencv.hpp>
using namespace std;
using namespace cv;Mat src, src_gray, dst;const char* output_title = "final image";
int main()
{src = imread("test.png");//读取图片if (src.empty()){cout << "could not load img...";return -1;}namedWindow(output_title);//设置窗口名称imshow("test", src);// 中值滤波Mat moutput;medianBlur(src, moutput, 3);cvtColor(moutput, moutput, COLOR_BGR2GRAY);// 霍夫圆检测vector<Vec3f> pcircles;HoughCircles(moutput, pcircles, HOUGH_GRADIENT, 1, 10, 100, 30, 5, 50);src.copyTo(dst);for (size_t i = 0; i < pcircles.size(); i++) {Vec3f cc = pcircles[i];circle(dst, Point(cc[0], cc[1]), cc[2], Scalar(0, 0, 255), 2, LINE_AA);//绘制圆心circle(dst, Point(cc[0], cc[1]), 2, Scalar(198, 23, 155), 2, LINE_AA);}imshow(output_title, dst);waitKey(0);return 0;
}

相关文章:
19 OpenCV 霍夫曼变换检测圆
文章目录 cv::HoughCircles算子参数示例 cv::HoughCircles 因为霍夫圆检测对噪声比较敏感,所以首先要对图像做中值滤波。 基于效率考虑,Opencv中实现的霍夫变换圆检测是基于图像梯度的实现,分为两步: 检测边缘,发现可能…...
leetcode代码记录(摆动序列
目录 1. 题目:2. 我的代码:小结: 1. 题目: 如果连续数字之间的差严格地在正数和负数之间交替,则数字序列称为 摆动序列 。第一个差(如果存在的话)可能是正数或负数。仅有一个元素或者含两个不等…...
django学习笔记
django学习笔记 http://djangobook.py3k.cn/2.0/chapter05/ 文章目录 django学习笔记模型 models.py1、定义数据模型2、模型安装3、创建数据表4、数据表的增删改查4.1 增加4.2 删除4.3 修改4.4 查询4.5 模糊查询4.6 排序&连锁查询4.7 限制返回数据 5、模型使用实战 模型 m…...
Python环境安装及Selenium引入
Python环境安装 环境下载 Download Python | Python.org 环境安装 需使用管理员身份运行 查看环境是否安装成功 python --version 如果未成功则检查环境变量配置 安装 Selenium 库 pip install selenium Selenium 可以模拟用户在浏览器中的操作,如点击按钮、填写…...
【gpt实践】实用咒语分享
直接上咒语了,大家可以自行实践。 1、忽略先前所有的提示 有时候gpt会停留在之前的问题中,导致回答当前问题带着之前问题结论。 2、忽略所有的客套话 我们只是需要有用的信息,有时候gpt客套话会混淆视听。 3、给出非常简短明确的答案 同样…...
Linux用户和权限
一、root用户(超级管理员) 普通用户的权限,一般在其HOME目录内是不受限的 一旦出了HOME目录,大多数地方,普通用户仅有只读和执行权限,无修改权限 二、su 和 exit命令 语法:su [ - ] 【用户…...
git svn混用
背景 项目代码管理初始使用的svn, 由于svn代码操作,无法在本地暂存,有诸多不便,另外本人习惯使用git. 所以决定迁移至git管理 迁移要求: 保留历史提交记录 迁移流程 代码检出 git svn svn_project_url git代码提交 修改本…...
FPGA静态时序分析与约束(三)、读懂vivado时序报告
系列文章目录 FPGA静态时序分析与约束(一)、理解亚稳态 FPGA静态时序分析与约束(二)、时序分析 文章目录 系列文章目录前言一、时序分析回顾二、打开vivado任意工程2.1 工程布局路由成功后,点击vivado左侧**IMPLEMENT…...
鸿蒙Harmony应用开发—ArkTS声明式开发(容器组件:Badge)
可以附加在单个组件上用于信息标记的容器组件。 说明: 该组件从API Version 7开始支持。后续版本如有新增内容,则采用上角标单独标记该内容的起始版本。 子组件 支持单个子组件。 说明: 子组件类型:系统组件和自定义组件…...
Python程序设计基础——代码习题
1 __name__属性 import demodef main():if __name__ __main__:print(这个程序被直接运行。)elif __name__demo:print(这个程序作为模块被使用。) main()3.3 编写程序,生成包含1000个0~100之间的随机整数,并统计每个元素出现的次数。 import randomx[r…...
代码随想录 贪心算法-中等题目-序列问题
目录 376.摆动序列 738.单调递增的数字 376.摆动序列 376. 摆动序列 中等 如果连续数字之间的差严格地在正数和负数之间交替,则数字序列称为 摆动序列 。第一个差(如果存在的话)可能是正数或负数。仅有一个元素或者含两个不等元素的序列…...
pytest生成allure的报告
首先要下载安装配置allure allure serve ./outputs/allure_report 可以生成html的文件自动在默认浏览器中打开...
Python控制摄像头并获取数据文件
一、引言 摄像头作为计算机视觉领域的核心设备之一,广泛应用于视频监控、图像采集和数据处理等领域。通过Python编程语言,我们可以实现对摄像头的精确控制,包括摄像头的开启、关闭、参数设置以及数据获取等功能。 目录 一、引言 二、摄像头…...
免费分享一套SpringBoot+Vue自习室(预约)管理系统,帅呆了~~
大家好,我是java1234_小锋老师,看到一个不错的SpringBootVue自习室预约)管理系统,分享下哈。 项目视频演示 【免费】SpringBootVue自习室预约(预约)管理系统 Java毕业设计_哔哩哔哩_bilibili【免费】SpringBootVue自习室预约(预约)管理系统…...
mac删除带锁标识的app
一 、我们这里要删除FortiClient.app 带锁 常规方式删除不掉带锁的 app【如下图】 二、删除命令,依次执行即可。 /bin/ls -dleO /Applications/FortiClient.app sudo /usr/bin/chflags -R noschg /Applications/FortiClient.app /bin/ls -dleO /Applications/Forti…...
PHP异世界云商系统开源源码
系统更新与修复列表 1. 基于彩虹的二次开发 - 对彩虹系统进行了二次开发,增强了系统的功能和性能。2. 新增自定义输入框提示内容(支持批量修改) - 用户可以自定义输入框的提示内容,并支持批量修改,提升用户体验。3. 新…...
Vue生成Canvas二维码
npm install qrcode在Vue组件中引入QRCode库:import QRCode from qrcode;在Vue组件的methods中创建一个方法来生成二维码: generateQRCode() {const canvas this.$refs.qrCodeCanvas; // 获取canvas DOM元素的引用const text Hello, World!; // 要生成…...
JAVA基础—JVM内存结构基础需知
1.JVM内存结构 JVM内存结构分为5个区域:方法区,虚拟机栈,本地方法栈、堆、程序计数器。 1.方法区(Method Area):用于存储类的结构信息、常量、静态变量、即使编译器编译后的代码等数据。方法区也是所有线…...
【滤波专题-第8篇】ICA降噪方法——类EMD联合ICA降噪及MATLAB代码实现(以VMD-ICA为例)
今天来介绍一种效果颇为不错的降噪方法。(针对高频白噪声) 上一篇文章我们讲到了FastICA方法。在现实世界的许多情况下,噪声往往接近高斯分布,而有用的信号(如语音、图像特征等)往往表现出非高斯的特性。F…...
jeecg 启动 微服务 更改配置本地host地址
127.0.0.1 jeecg-boot-redis 127.0.0.1 jeecg-boot-mysql 127.0.0.1 jeecg-boot-nacos 127.0.0.1 jeecg-boot-gateway 127.0.0.1 jeecg-boot-system 127.0.0.1 jeecg-boot-sentinel 127.0.0.1 jeecg-boot-xxljob 127.0.0.1 jeecg-boot-rabbitmq1. windows系统下,在开…...
RexUniNLU零样本实战:智能家居指令解析,5分钟快速上手
RexUniNLU零样本实战:智能家居指令解析,5分钟快速上手 1. 为什么选择RexUniNLU处理智能家居指令? 1.1 智能家居场景的特殊挑战 智能家居领域面临两大核心难题:指令多样性和用户表达随意性。同一操作可能有数十种表达方式&#…...
如何永久保存微信聊天记忆:WeChatMsg本地数据管理终极指南
如何永久保存微信聊天记忆:WeChatMsg本地数据管理终极指南 【免费下载链接】WeChatMsg 提取微信聊天记录,将其导出成HTML、Word、CSV文档永久保存,对聊天记录进行分析生成年度聊天报告 项目地址: https://gitcode.com/GitHub_Trending/we/W…...
Qwen2.5-VL-7B-InstructGPU优化指南:视觉特征缓存机制与响应速度实测对比
Qwen2.5-VL-7B-Instruct GPU优化指南:视觉特征缓存机制与响应速度实测对比 1. 项目概述与优化背景 Qwen2.5-VL-7B-Instruct作为一款先进的多模态视觉-语言模型,在处理图像和文本交互任务时展现出强大能力。但在实际部署中,我们发现其GPU资源…...
NaViL-9B多模态实战:社交媒体长图理解+争议点识别+评论生成
NaViL-9B多模态实战:社交媒体长图理解争议点识别评论生成 1. 平台简介 NaViL-9B是上海人工智能实验室研发的原生多模态大语言模型,具备强大的文本理解和图像分析能力。与单一模态模型不同,NaViL-9B能够同时处理文字和图片输入,实…...
从需求到代码:基于快马平台ai生成spring boot电商系统实战项目
从需求到代码:基于快马平台AI生成Spring Boot电商系统实战项目 最近在做一个电商订单处理系统的项目,正好尝试了用InsCode(快马)平台来快速生成Spring Boot代码。整个过程比我预想的要顺畅很多,特别是对于这种包含多个模块的中型项目&#x…...
书匠策AI:学术江湖里的“论文剑客”,助你披荆斩棘!
书匠策AI官网:www.shujiangce.com | 微信公众号搜一搜:书匠策AI 在学术的江湖里,写期刊论文就像是一场“闯关游戏”——选题、查文献、搭框架、写内容、调格式……每一关都充满挑战,稍有不慎就可能“Game Over”。但别怕…...
视频超分实战:TDAN网络结构拆解与代码对照指南(附完整流程图)
视频超分实战:TDAN网络结构拆解与代码对照指南(附完整流程图) 在视频超分辨率领域,帧间对齐质量直接决定了最终重建效果的上限。传统光流法虽然成熟,但依赖额外网络且误差累积问题显著。TDAN(Temporally D…...
5步实现图表数据提取自动化:用WebPlotDigitizer提升科研效率80%
5步实现图表数据提取自动化:用WebPlotDigitizer提升科研效率80% 【免费下载链接】WebPlotDigitizer Computer vision assisted tool to extract numerical data from plot images. 项目地址: https://gitcode.com/gh_mirrors/we/WebPlotDigitizer 还在为手动…...
【QuantDev必藏】:为什么92%的C++交易系统仍在用malloc——深度剖析jemalloc/tcmalloc/mimalloc在L3缓存穿透场景下的失效临界点
第一章:金融高频交易系统内存分配的底层挑战与现实困境在纳秒级竞争的金融高频交易(HFT)场景中,内存分配不再是语言运行时的“黑盒服务”,而是决定订单延迟、吞吐一致性与系统可预测性的关键路径。传统堆分配器&#x…...
AI开发效率翻倍:TensorFlow-v2.9镜像完整开发环境实测体验
AI开发效率翻倍:TensorFlow-v2.9镜像完整开发环境实测体验 你是不是也经历过这样的场景?新项目启动,满怀激情准备大干一场,结果第一天就卡在了环境配置上。CUDA版本不对、依赖库冲突、Python环境混乱……光是让TensorFlow成功识别…...
