22-霍夫圆变换

OpenMV圆识别动态阈值滤波与颜色-形状联合优化 在嵌入式机器视觉中,目标几何参数(如圆心坐标、半径)的帧间抖动是影响闭环控制稳定性的核心问题。其本质源于霍夫变换对噪声、光照变化和边缘模糊的敏感性,使视觉输出呈现类传感器噪声特性。为此,工程上常引入基于时间域约束的状态滤波机制,通过设定最大变化阈值(Max Variation Threshold)限制单帧参数跃变幅度,实现轻量级鲁棒平滑。该方法无需复杂数学模型,仅依赖像素级容差判断,兼顾实时性与精度,广泛应用于OpenMV、STM32视觉协处理等资源受限场景。结合HSV颜色空间阈值筛选与ROI内形状验证,可 阅读详情

Hough圆变换

1、Hough圆检测原理;
2、相关API;
3、代码演示;

Hough圆检测原理

1、平面坐标中的圆变换到霍夫空间中后,圆上每个像素点产生的圆都会经过一次圆心,圆心会变得很亮;
在这里插入图片描述

在这里插入图片描述
在这里插入图片描述

相关API

cv::HoughCircles():
1、霍夫圆检测对图像噪声比较敏感,使用前需要先对图像做中值滤波(去除椒盐噪声);
2、基于效率考虑,OpenCV中实现霍夫变换圆检测是基于图像梯度的实现,分为两步:(提高计算效率)
①检测边缘,发现可能的圆心(此处使用Canny算法);
②基于第一步的基础上从候选圆心计算最佳半径的大小;
在这里插入图片描述
参数说明:
image:8位单通道灰度图像(双通道,三通道…都不行)
circles: 输出结果,是一个向量数组Vector;
method: --取HOUGH_GRADIENT,通过图像梯度寻找
dp : 取1,代表在原图上寻找(取2代表在原图的一半上寻找,寻找速度更快)
mindist: 最短距离(10),因为图像可能有同心圆,当圆半径很接近时就认为是同一个圆;
param1://设置Hough圆变换中Canny算法的高阈值(High threshold),低阈值取其一半;
param2: //中心点累加器阈值(30,50个像素则说明差不多有一小段圆弧了),与圆的半径有关;
minradius :待检测圆的最小半径设置
maxradius: 待检测圆的最大半径设置

Code

注意:
1、图像在调用HoughCircles()API之前必须进行图像预处理(模糊滤波),提高检测结果的准确性;
2、maxradius值设置不同,检测结果也不同
在这里插入图片描述

#include <opencv2/opencv.hpp>
#include <iostream>

using namespace std;
using namespace cv;

int main(int argc, char** argv)
{
	Mat dst;
	Mat src = imread("C:\\Users\\hello\\Desktop\\24.jpg");
	if (!src.data)
	{
		cout << "could not load the image..." << endl;
		return -1;
	}
	namedWindow("input image", CV_WINDOW_AUTOSIZE);
	imshow("input image", src);
	
	//中值滤波
	Mat medimage,grayimage;
	medianBlur(src, medimage,3);
	cvtColor(medimage, grayimage, CV_BGR2GRAY);
	//Hough圆检测
	//声明向量  存储数据,大小自动变化
	vector<Vec3f> circles;
	HoughCircles(grayimage, circles, HOUGH_GRADIENT, 1, 10, 100, 30, 5,50);//maxradius的值一定要设置合理
	src.copyTo(dst);
	for (int i = 0; i < circles.size(); i++)
	{
		Vec3f cc = circles[i];
		//画检测圆
		circle(dst, Point((int)cc[0], (int)cc[1]), (int)cc[2], Scalar(0, 0, 255), 1, LINE_AA);
		//圈出检测到的圆心
		circle(dst, Point((int)cc[0], (int)cc[1]), 3, Scalar(127, 127, 0), 1, LINE_AA);
	}
	imshow("Hough Detection Image", dst);

	waitKey(0);
	return 0;
}

效果

maxradius = 40时:
在这里插入图片描述
maxradius = 50时:(基本圆都检测出来了)

在这里插入图片描述
maxradius = 60时:(开始混乱)
在这里插入图片描述

maxradius = 70时:

在这里插入图片描述

Hough变换检测原理 1.前言 霍夫变换(Hough Transform)是图像处理中的一种特征提取技术,它通过一种投票算法检测具有特定形状的物体。该过程在一个参数空间中通过计算累计结果的局部最大值得到一个符合该特定形状的集合作为霍夫变换结果。霍夫变换于1962年由Paul Hough 首次提出,后于1972年由Richard Duda和Peter Hart推广使用,经典霍夫变换用来检测图像中的直线,后来霍夫变换 阅读详情

相关推荐

Hough Transform(霍夫变换)检测Circle(圆)的几种方法

使用霍夫变换检测图像中的直线,圆等图形是利用图形函数的从直角坐标系到极坐标系的转换。 比如检测直线中,直线方程y = k * x + b  ,   直线上的所有点都对应着参数( k , b), 给定一个点(x0 , y0)我们能够得到通过这个点的所有直线的参数(k , b),易知同一条直线上的点对应的参数(k , b)是相同的 利用此信息,我们建立k , b 的累加器,依次计算图像中提取出的

知行且执行 9415

OpenCvSharp 学习笔记21-- 霍夫变换 - 圆检测 (Hough Circle transform)

一,霍夫圆检测原理: 与霍夫直线检测相似 已知图像每一个像素对应极坐标坐标点为(x,y)(x,y)(x,y): x=a+Rcos⁡(θ) x=a+R\cos(\theta) x=a+Rcos(θ) y=b+Rsin⁡(θ) y=b+R\sin(\theta) y=b+Rsin(θ) a,ba,ba,b : 表示极坐标中的圆心 ,R : 表示半径 ,θ\thetaθ : 0° ~ 360° 假设 ...

C++++ ++ 1万+

有关opencv的学习(22)—霍夫变换及应用

一、霍夫变换及应用        霍夫变换(Hough Transform)是图像处理中的一种特征提取技术, 该过程在一个参数空间中通过计算累计结果的局部最大值得到一个符合该特定形状的集合作为霍夫变换的结果。        霍夫变换在OpenCV中主要分两种:                   霍夫线变换---检测直线(线段)                   霍夫圆变换---检测圆

qq_35724402的博客 1420

Hough变换检测圆(附:MATLAB程序)

Hough变换的基本原理在于,利用点与线的对偶性,将图像空间的线条变为参数空间的聚集点,从而检测给定图像是否存在给定性质的曲线。圆的方程为:(x-a)^2+(y-2)^2=r^2,通过Hough变换,将图像空间对应到参数空间。附录中的MATLAB程序为网上比较常见的,实际运行中存在一些问题,这里进行些修改。     原理:     霍夫变换是图像处理中从图像中识别几何形状的基本方法之一,应

mhjerry的专栏(子水) 14万+

图像分割 - Hough变换圆环检测

Hough 变换除了能用来检测直线外,也能用来检测圆环检测圆环的原理和直线类似,在检测圆环的过程中,需要考虑的参数有圆心和半径(x,y,r)opencv 封装的圆环检测采用的是两轮筛选的方法第一轮筛选会找出可能是圆的圆心坐标第二轮筛选会计算这些圆心坐标可能的对应半径长度image 检测的图像,这里是灰度图method 检测方法,opencv 4.0 及以前的版本提供了 HOUGH_GRADIENT作为唯一的方法dp 累加器,通常使用1。

Henry的博客 2036

从零开始:在Ubuntu 22.04上配置Isaac Gym Preview 3环境(含常见错误解决方案)

本文提供了在Ubuntu 22.04系统上从零开始配置Isaac Gym Preview 3环境的完整实战指南。内容涵盖NVIDIA驱动安装、Conda环境搭建、CUDA与PyTorch版本精准匹配、Isaac Gym核心安装与验证,并重点介绍了针对四足机器人等复杂系统的强化学习训练环境配置、常见错误解决方案及性能调优技巧,旨在帮助开发者高效部署这一高性能物理仿真平台。

weixin_29048775的博客 391

22.霍夫圆变换

1.主要内容 霍夫圆检测原理 相关API 代码演示 2.霍夫圆检测原理 从平面坐标到极坐标转换三个参数C(x0,y0,r),其中x0.y0是圆心。 假设平面坐标的任意一个圆上的点,转换到极坐标中,C(x0,y0,r)处有最大值,霍夫变换正是利用这个原理实现圆的检测 因为霍夫圆检测对噪声比较敏感,所以首先要对图像做中值滤波(去椒盐噪声) 基于效率考虑,opencv中实现的霍夫变换圆检测是基于图...

罗伊的博客 634

23数字图像置乱技术(matlab程序)

所谓“置乱”,就是将图像的信息次序打乱,a像素移动到b像素位置上,b像素移动到c像素位置上,……,使其变换成杂乱无章难以辨认的图片。数字图像置乱技术属于加密技术,是指发送发借助数学或者其他领域的技术,对一幅有意义的数字图像做变换,使之变成一幅杂乱无章的图像用于传输。在图像传输过程中,它通过对图像像素矩阵的重排,破坏了图像矩阵的相关性,使非法截获者无法从杂乱无章的图像中获得原图像信息,以此实现信息的加密。接收方经去乱解密可恢复原图像。

m0_57943157的博客 1204

python+opencv3.3视频教学笔记 22 Hough 霍夫圆变换

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

酸菜鱼没有梦想的博客 339

Unified Access Control:从NAS到RRC的5G接入控制全流程解析

本文深入解析了5G统一接入控制(Unified Access Control)的全流程,从NAS到RRC的协同工作机制。通过身份核验、业务分类和动态决策三个核心步骤,UAC实现了智能调度和弹性决策,确保海量设备接入时的网络稳定性。文章详细介绍了USIM卡的身份凭证体系、NAS层的业务分类引擎以及RRC层的动态决策机制,并提供了实战案例和常见问题排查方法。

weixin_30855099的博客 588

Ubuntu 26.04 本地安装 GitLab CE 完整教程(非 Docker 方式)

本文详细介绍了在Ubuntu 26.04系统上通过Omnibus包安装GitLab CE的完整流程。主要内容包括:环境准备(系统要求、依赖安装)、配置清华镜像源、执行安装命令、修改配置文件、服务管理命令以及常见问题解决方法。文章特别强调了内存要求(建议4GB以上)、首次登录密码获取、HTTPS安全配置等关键点,并提供了性能优化建议和安全设置指导。相比Docker方式,Omnibus安装具有性能更好、管理方便等优势,适合需要私有化部署GitLab的场景。

1369

OpenCV基础课程笔记22霍夫圆变换

写在前面 这里我其实准备了两张图,一张圆形交错的,一张T细胞在显微镜下呈现的景象,但是圆检测怎么调,都调不到满意的结果,不知道是什么参数不太合适。 代码 #include<iostream> #include<opencv2/opencv.hpp> #include<cmath> using namespace std; using namespace cv; int main() { Mat src = imread("A:\\专用\\TestForTheCV\\c

爱和九九的博客 226

英飞凌TC3xx--深度手撕HSM安全启动(三)--TC3xx HSM系统架构

TC3xx的HSM内核是一颗32位的ARM Cortex M3,主频可达100MHz,支持对称算法AES128、非对称算法PKC(Public Key Crypto) ECC256、Hash SHA2,以及TRNG(真随机数生成)。

认真搞搞汽车MCU 5740

OpenCV CUDA模块霍夫变换------在 GPU 上执行霍夫圆变换(Hough Circle Transform)类HoughCirclesDetector

cv::cuda::HoughCirclesDetector 是 OpenCV CUDA 模块中的一个类,用于在 GPU 上执行霍夫圆变换(Hough Circle Transform),从而检测图像中的圆形。相比于 CPU 版本的 cv::HoughCircles(...),它利用了 GPU 加速以提高处理速度,尤其适合大规模图像或实时应用。

jndingxin的专栏 1134

大模型长对话中上下文无法承载全部历史,如何压缩或提取重点

如果说截断和滑动窗口是“硬性”压缩,那摘要生成技术就显得“软”多了,也更接近于智能化的解决方案。它的思路是:不直接丢弃历史,而是通过自然语言处理(NLP)技术,把冗长的对话记录浓缩成一段简短的摘要,保留核心信息。这样既能大幅减少token数量,又不至于丢失关键内容。这种方法通常会借助预训练模型,比如BART或T5,它们擅长从长文本中提取重点内容。

大模型大数据攻城狮的专栏 1584

QT5.12.1报错:1. clang++:error: :fatal error andriod Input/output error

QT5.12.1报错:1. clang++:error: :fatal error andriod Input/output error 解决方式: 1.qt程序不要放在共享目录下编译,直接拷贝到ubuntu系统中编译 2.修改/home/xt/Qt5.12.1/5.12.1/android_armv7/mkspecs/android-clang中 #QMAKE_LINK = QMAKECXXQMAKE_CXX QMAKEC​XXQMAKE_CFLAGS -Wl,–exclude-libs,libgc

xt18971492243的博客 735

基于霍夫圆变换的GIF人脸替换技术实现

计算机视觉中的人脸检测技术通常基于肤色和五官特征,但在处理卡通图像时会遇到挑战。霍夫圆变换作为一种基于形状的检测方法,通过边缘检测和参数空间投票机制,能有效识别特定形状的目标。该技术在动态图像处理中具有重要价值,尤其适用于GIF帧序列中的人脸替换场景。本文通过多层级过滤机制(包括颜色、形状、纹理和轮廓过滤)解决了卡通人脸检测的准确性问题,并实现了自动化处理流程。结合OpenCV和Pillow等工具,该方案可快速完成多帧图像处理,为表情包制作、视频特效等领域提供了实用技术参考。

civtsbiqr522632413的博客 387

AI智能体丨使用Coze一键生成爆款书单视频,3个月内获赞131.1w!(附保姆级教程)

这篇教程详细介绍了如何使用扣子(Coze)平台的AI智能工作流批量制作爆款书单视频。通过自动化流程,只需1-2分钟即可生成45-50秒的书单视频,效率提升近百倍。工作流包含文案生成、音频合成、图片素材获取、视频剪辑等全流程,支持随机生成8本书单、自动提取金句、智能配音等功能。教程提供了完整的操作步骤,包括剪映草稿配置、特效添加等细节,并附体验链接和示例效果。最终生成的视频包含书单展示、金句字幕、背景音乐等元素,适合书单号运营者快速批量产出内容。

李同学Lino的博客 2354

C/C++实现显微镜玻片球状细胞识别与计数

实践数字图像处理,实现细胞计数

liujinghua16的博客 1036

SIMATIC S7-1200, S7-1500 PID 控制[手册]

SIMATIC S7-1200, S7-1500 PID 控制[手册]

TMS_WebGMaps_1.9.8.0_Full_Source

TMS_WebGMaps_1.9.8.0_Full_Source 全源码 delphi cbuilder

开源项目文档:基于Python和OpenCV的虹膜检测系统设计与实现

本文设计并实现了一套基于Python与OpenCV的虹膜检测系统,采用霍夫圆变换(Hough Circle Transform)算法对眼部图像进行处理,实现虹膜区域的自动定位与轮廓提取。系统首先对输入图像进行灰度化与中值滤波预处理,消除噪声干扰;继而利用HoughCircles函数在参数空间中累计投票,检测虹膜圆形边界;最终以绿色圆弧标注检测结果并输出圆心坐标与半径数值。在此基础上,进一步开发了具备图形用户界面(GUI)的交互式应用,提供参数实时调节、批量检测及结果保存功能。实验结果表明,在标准近红外眼部图

ZSW1218的博客 298

Statistics and Machine Learning Toolbox

Statistics and Machine Learning Toolbox(带书签),MATLAB统计学习工具

霍夫圆检测 opencv

  进行霍夫圆变换中有一个API:HoughCircles()。   第五个参数为double类型的minDist(),为霍夫变换检测到的圆的圆心之间的最小距离,即让算法能明显区分的两个不同圆之间的最小距离。这个参数如果设置太小,多个相邻的圆可能被错误的检测成了一个重合的圆。反之,如果设置太大,某些圆就不能检测出来。   第七个参数,它越小,就越可以检测到更多根本不存在的圆,而它越大的话,能通...

weixin_30237281的博客 186

SAP B1中文培訓教材_SDK

公司内部培训资料,对开发工具 ,DIAPI, UIAPI,Add-ON有详细解说

opencv学习笔记5 霍夫变换 漫水填充

一。霍夫线变换 1.标准霍夫变换(StandardHough Transform,SHT),由HoughLines函数调用。 2.多尺度霍夫变换(Multi-ScaleHough Transform,MSHT),由HoughLines函数调用。 void HoughLines(InputArray image, OutputArray lines, double rho, doub...

weixin_30548917的博客 132

图像处理——霍夫线/圆变换

首先感谢以下两位的渊博知识: (1)疯狂奔跑       https://www.cnblogs.com/php-rearch/p/6760683.html (2)yzl050819    http://www.cnblogs.com/yzl050819/p/7967526.html 一、霍夫线变换(Hough)   A-基本原理 一条直线可由两个点A=(X1,Y1)和B

fengye2two的专栏 1621

opencv学习之路(18)、霍夫变换

一、简介 在图像处理和计算机视觉领域中,如何从当前的图像中提取所需要的特征信息是图像识别的关键所在。在许多应用场合中需要快速准确地检测出直线或者圆。其中一种非常有效的解决问题的方法是霍夫(Hough)变换。 二、霍夫线变换 霍夫线变换的原理 以上原理部分,转自http://blog.youkuaiyun.com/poem_qianmo/article/details/2...

weixin_30681615的博客 159

兄弟我发现:给云南篝火 GIF 换脸,不想手动 P 图,就写代码批量生成

摘要:本文介绍了一种通过代码批量替换GIF中卡通人脸的方法。作者利用霍夫圆变换检测白色圆形头部,并设计了四重过滤机制(亮度饱和度检测、非白像素比例、内部标准差、轮廓描边密度)排除误检的篝火、虚假大圆和背面角色。最终实现只需5秒即可自动处理22帧GIF,将指定人脸照片替换到所有正面卡通角色上。该方法克服了传统人脸检测对卡通无效的问题,提供了一键式解决方案,依赖OpenCV、Pillow和NumPy三个库即可运行。(150字)

ahundredmile的博客 846

OpenCV之圆的检测识别

整个具体流程大概是获取图像-->图像二值化,灰度图(cvtColor)-->图像降噪(GaussianBlur)->轮廓识别(cvFindContours)-->形状判断 识别圆 在识别圆方面,OpenCV有内置的方法即霍夫圆变化: HoughCircles(edges, circles, CV_HOUGH_GRADIENT, 1.5, 10, 200, 100, ...

KillMeHealMe的博客 4188
上一篇: 21-霍夫变换(Hough)
下一篇: OpenCV3:通道和位深的含义
hellohake
博客等级 码龄10年 4543粉丝 108原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值