Opencv学习——霍夫圆变换

OpenCV(十八)霍夫变换(直线、线段与圆检测) 一、基础理论 霍夫变换(Hough Transform)是图像处理中的一种特征提取技术,它通过一种投票算法检测具有特定形状的物体。Hough变换是图像处理中从图像中识别几何形状的基本方法之一。Hough变换的基本原理在于利用点与线的对偶性,将原始图像空间的给定的曲线通过曲线表达形式变为参数空间的一个点。这样就把原始图像中给定曲线的检测问题转化为寻找参数空间中的峰值问题。也即把检测整体特性转化为检测局部特性。比如直线、椭圆、圆、弧线等。 ... 阅读详情

HoughCircles()函数:

void HoughCircles( InputArray image, OutputArray circles,
                               int method, double dp, double minDist,
                               double param1 = 100, double param2 = 100,
                               int minRadius = 0, int maxRadius = 0 );
image输入图像,8位灰度单通道图像
circles储存了检测到的圆的输出矢量。每个矢量包含3个元素的浮点矢量(x,y,radius)
method检测方法:HOUGH_GRADIENT
dpdp=1时,累加器和输入图像具有相同的分辨率。dp=2,累加器便有输入图像一半那么大
minDist圆的圆心之间的最小距离
param1表示传递给canny边缘检测算子的高阈值,默认值100,低阈值为高阈值的一半
param2默认值100,表示在检测阶段圆心的累加器阈值。越小就越可以检测到更多根本不存在的圆。
minRadius表示圆半径的最小值
maxRadius表示圆半径的最大值
#include<opencv2/opencv.hpp>
#include<opencv2/highgui.hpp>
#include<opencv2/imgproc/imgproc.hpp>
#include<vector>
using namespace cv;
using namespace std;
int main()
{
	Mat canny_dst,gray_dst,dst;
	Mat src = imread("F:/2.jpg");	
	imshow("src", src);
	cvtColor(src, gray_dst, COLOR_RGB2GRAY);
	GaussianBlur(gray_dst, gray_dst, Size(9, 9), 2, 2);	
	//Canny(gray_dst, gray_dst, 50, 200, 3);
	imshow("gray_dst", gray_dst);
	vector<Vec3f>circles;
	HoughCircles(gray_dst, circles, HOUGH_GRADIENT, 1.5, 10, 100, 80,0,0);
	for (int i = 0; i < circles.size(); i++)
	{
		Point center(cvRound(circles[i][0]), cvRound(circles[i][1]));
		int radius = cvRound(circles[i][2]);
		circle(src, center, 3, Scalar(0, 255, 0), -1, 8, 0);
		circle(src, center, radius, Scalar(155, 50, 255), 3, 8, 0);
	}
	imshow("效果图", src);
	
	waitKey(0);
	return 0;
}

OpenCV中数据类型cv::Vec3f cv::Vec3f 阅读详情

相关推荐

使用OpenCV实现人眼检测与瞳孔精准定位

OpenCV(Open Source Computer Vision Library)是一个开源的计算机视觉和机器学习软件库。计算机视觉作为AI领域的分支,主要研究如何使计算机能够从图像或视频中提取信息,并通过处理、分析来理解数字图像内容或图像序列。计算机视觉广泛应用于包括但不限于医学成像、工业自动化、视频监控和人机交互等。计算机视觉系统的开发需要依赖于图像处理算法和深度学习模型,这些技术能够提供从基础边缘检测到复杂的图像识别的能力。

weixin_36369848的博客 934

opencv图像处理学习(五十六)——霍夫圆检测

霍夫圆检测的基本原理与霍夫线变换原理类似,直线检测中的点对应极坐标空间,在变换中被三维空间中圆坐标空间代替。对直线而言,一条直线可由极坐标参数来确定,而对于圆来说,就需要三个参数来确定一个圆。同二维霍夫线变换原理,三维空间曲线中相交于一点的边缘点集越多,那么它们经过的共同圆上的像素点就越多,设定阈值进行相应判断一个圆是否被检测到,这就是标准霍夫圆变换的原理。但也正是由于三维空间的计算量大大增加的原...

图像学习之旅 972

深入解析Cuk、Zeta和Sepic拓扑:非隔离型开关电源的设计奥秘

本文深入解析了Cuk、Zeta和Sepic三种非隔离型开关电源拓扑的设计奥秘。它们均能实现升降压转换,但特性各异:Cuk拓扑输出反向电压,输入输出纹波极低;Sepic拓扑输出同极性电压,应用广泛;Zeta拓扑输出纹波小,适合精密供电。文章详细对比了其电路结构、工作原理、核心公式及选型指南,帮助工程师根据输入电压范围、输出极性及纹波要求,灵活选择最合适的拓扑方案。

weixin_28308325的博客 477

OpenCv霍夫变换检测圆形

最近开始学习opencv,想检测图片上的圆环,发现霍夫变换可以做这样的效果出来,于是尝试用opencv3的霍夫变换做了下圆环检测。opencv中霍夫变换函数:void HoughCircles(InputArray image,OutputArray circles, int method, double dp, double minDist, double param1=100,double p...

sinat_34156619的博客 1万+

DBeaver连接IoTDB避坑指南:手动配置JDBC驱动的完整流程(附问题排查)

本文提供了在DBeaver中手动配置Apache IoTDB JDBC驱动的完整流程与避坑指南。详细解析了从驱动创建、库文件添加(关键是指向整个lib目录)到连接测试的每一步,并重点针对常见的ClassNotFoundException、连接拒绝等错误提供了深度排查方案,帮助用户高效建立图形化管理连接。

weixin_28327051的博客 396

基于AMD AU15P FPGA的SLVS-EC桥PCIe设计方案分享

各位FPGAer周末愉快,今天熊猫君分享一个基于AMD AU15P FPGA的SLVS-EC桥PCIe设计方案。

haoxingheng的专栏 1447

opencv之霍夫变换:圆

opencv霍夫变换:圆

m0_37383484的博客 3224

实现基于 Python 和 xterm.js 的 Web 交互终端demo

前端 (HTML):使用 xterm.js 作为前端终端模拟器库。创建了一个 WebSocket 连接到 ws://localhost:8765,这与后端服务器的地址和端口匹配。监听 WebSocket 消息,并将数据写入终端。同时监听用户输入并发送到服务器。后端 (Python):使用 websockets 库来创建 WebSocket 服务器,监听端口 8765。使用 paramiko 库来创建 SSH 客户端并连接到指定的远程服务器。

u010674101的专栏 876

【opencv学习笔记】022之霍夫圆变换

1.原理介绍opencv中实现霍夫圆变换原理其实很简单的,初中生都会的,所以大家不要担心了啦,看下面这张图片,你看到了啥?对,没错,就是两根直线,四个圆,四个点,四个点分别是四个圆的圆心。并且四个圆大小是一样的(看着一样哈,大家就当一样吧,别用尺规作图去验证了)大家根据自己的理解去找对应关系啊!虽然本人学数学,但是美术不行啊!!!三个绿点点,对对对就是那三个,都是中间圆的圆上的一点,这样外面三个...

水亦心的博客 3030

python中使用squarify包可视化treemap图:为treemap图添加标题并自定义标题的字体大小、自定义设置treemap中标签字体的大小、添加数值数值标签、自定义设置边框的色彩

python中使用squarify包可视化treemap图:treemap将分层数据显示为一组嵌套矩形自定义设置每一个数据格的颜色、添加数值数值标签、自定义设置边框的色彩、自定义设置边框线条的粗细、为treemap图添加标题并自定义标题的字体大小、自定义设置treemap中标签字体的大小

data+scenario+science+insight 1064

使用 Python 实现基于 AGA8 GERG - 2008 方程计算掺氢天然气压缩因子的示例代码

AGA8 GERG - 2008 方程是用于计算天然气混合物热力学性质的一种方法,下面是一个使用 Python 实现基于 AGA8 GERG - 2008 方程计算掺氢天然气压缩因子的示例代码。需要注意的是,AGA8 GERG - 2008 方程非常复杂,完整实现需要大量的系数和详细的计算步骤。这里我们简化了部分过程,使用CoolProp库来完成计算,因为CoolProp已经实现了 GERG - 2008 方程。

AI的内部世界的博客 887

opencv学习笔记--霍夫圆变换

声明:虽然肯定没人看,但是我要说明,里面的内容都是我从官方文档上抄的,仅作为个人复习之用,并非原创。霍夫圆变换霍夫圆变换的基本原理和上个教程中提到的霍夫线变换类似, 只是点对应的二维极径极角空间被三维的圆心点x, y还有半径r空间取代.对直线来说, 一条直线能由参数极径极角  表示. 而对圆来说, 我们需要三个参数来表示一个圆, 如上文所说现在原图像的边缘图像的任意点对应的经过这个点的所有可能圆是...

x670127565的博客 461

YOLO系列算法改进 | 自研篇 | C3k2融合SEFN空间增强前馈网络模块 | 去模糊和提升图像细节特征,精度涨点!| WACV 2025

YOLO系列算法改进 | 自研篇 | C3k2融合SEFN空间增强前馈网络模块 | 去模糊和提升图像细节特征,精度涨点!| WACV 2025 (以YOLO26最新目标检测模型为基础,C3k2融合SEFN空间增强前馈网络模块改进Backbone)

2502_91881744的博客 238

花老湿学习OpenCV:霍夫圆变换与圆检测

引言: 霍夫圆变换的基本思路是认为图像上每一个非零像素点都有可能是一个潜在的圆上的一点,跟霍夫线变换一样,也是通过投票,生成累积坐标平面,设置一个累积权重来定位圆。 标准Hough圆变换: 在笛卡尔坐标系中圆的方程为: 其中(a,b)是圆心,r是半径,也可以表述为: 即 所以在abr组成的三维坐标系中,一个点可以唯一确定一个圆。而在笛卡尔的xy坐标系中经过某一点的所有...

qq_41942564的博客 1331

RK3399平台开发系列讲解(外设篇)交换芯片RTL8306M

网络:交换芯片RTL8306M 电路: make menuconfig 配置: 目录:arch/arm64/configs/rk3399_b201_defconfig CONFIG_FIXED_PHY=y 设备树: arch/arm64/boot/dts/rockchip/rk3399-b201-rev1.dts 时钟: Open之后首先校验网卡mac地址是否正确(stmmac_chec...

内核笔记 2391

文档:亲测可用解决vnc灰屏,黑屏,鼠标大黑叉情况

主要解决vnc-viewer灰屏,黑屏,鼠标大黑叉等现象,详细见文档。

OpenCV学习笔记-霍夫圆变换

霍夫圆变换的函数为:HoughCircles利用 Hough 变换在灰度图像中找圆CvSeq* cvHoughCircles( CvArr* image, void* circle_storage, int method, doubl

计算机视觉之光 1万+

Devexpress16.2.6破解工具

Devexpress16.2.6破解工具Devexpress16.2.6破解工具Devexpress16.2.6破解工具Devexpress16.2.6破解工具

opencv学习笔记(二十五)霍夫圆变换

霍夫圆变换与之前所描述的霍夫直线变换是大体上是类似的。说“大体上类似”的原因是——如果想要尝试完全类似——累加平面会被三维的累加容器所代替:在这三维中,一维是x,一维是y,另一维是圆的半径r。这就意味着需要大量的内存但速度却很慢。在OpenCV的应用中可以通过一个比较灵活的霍夫梯度法来解决圆变换的这一问题。 霍夫梯度法的原理如下。首先对图像应用边缘检测(这里用cvCanny ( )。然后,对边缘图

u014751607的博客 1636

华为的C语言编程规范.pdf

华为技术有限公司内部技术规范。本规范制定了编写C语言程序的基本原则、规则和建议。从代码的清晰、简洁、可测试、安全、程序效率、可移植各个方面对C语言编程作出了具体指导。

IEM模型,地表粗糙度模拟

利用微波反演土壤水分时候,利用IEM模型可以实现对随机地表的模拟

Opencv学习笔记(五) 霍夫直线变换和霍夫圆变换

霍夫变换 简介: 霍夫变换(Hough Transform)于1962年由Paul Hough 首次提出,后于1972年由Richard Duda和Peter Hart推广使用,是图像处理领域内从图像中检测几何形状的基本方法之一。经典霍夫变换用来检测图像中的直线,后来霍夫变换经过扩展可以进行任意形状物体的识别,例如圆和椭圆。 由于霍夫变换涉及的数学知识较为复杂,如有需要深入理解的,可以参考一下Op...

Rosen的博客 1086

霍夫圆变换全面解析(OpenCV)

霍夫圆变换(Hough Circle Transform)是计算机视觉领域中用于检测图像中圆形物体的一种经典算法。它是霍夫变换(Hough Transform)的一种特殊形式,专门用于识别圆形结构。霍夫变换最初由Paul Hough于1962年提出,主要用于直线检测,后来被Richard Duda和Peter Hart在1972年扩展到检测任意形状,包括圆形。

开源AI 专属 UI——papyrai-ui。《千界明彻录》(故事形式构建元思维)——胡说小说。更多思辨内容在公众号。 2012

学习 opencv---(13)opencv霍夫变换:霍夫线变换,霍夫圆变换

在本篇文章中,我们将一起学习opencv中霍夫变换相关的知识点,以及了解opencv中实现霍夫变换的HoughLines,HoughLinesP函数的使用方法,实现霍夫圆变换的HoughCircles函数的使用方法。 先尝鲜一下其中一个示例程序的运行截图: 一、引言 在图像处理和计算机视觉领域中,如何从当前的图像中提取所需要的特征信...

daxi0315的博客 268

学习【OpenCV入门教程之十四】OpenCV霍夫变换:霍夫线变换,霍夫圆变换合辑---笔记

本文参考@浅墨_毛星云 文章链接: http://blog.youkuaiyun.com/poem_qianmo/article/details/26977557          今天学习了教程【OpenCV入门教程之十四】OpenCV霍夫变换:霍夫线变换,霍夫圆变换合辑,表示对霍夫线变换如何由概念转化为代码,理解了很久,坐标图都画了好几页,因为是小白,理论知识不清楚,所以遇到一些问题,可能对有些人很基础

lindazhu520的博客 999

OpenCV学习笔记之十一——霍夫变换(霍夫线变换,霍夫圆变换)

首先感谢@浅墨_毛星云,本篇博文是小武通过学习@浅墨_毛星云的博客以及书籍《opencv3.0编程入门》整理的笔记及疑问心得,小武水平有限,欢迎交流。@浅墨_毛星云博文:https://blog.youkuaiyun.com/poem_qianmo/article/category/1923021一、概述霍夫变换(Hough Transform)是图像处理中的一种特征提取技术,该过程在一个参数空间中通过计算累...

小武的博客 742

OpenCV3学习(6.2)——霍夫(Hough)变换:霍夫线变换HoughLine,霍夫圆变换HoughCircles

霍夫变换是图像处理中从图像中识别几何形状的基本方法之一,应用很广泛,也有很多改进算法。主要用来从图像中分离出具有某种相同特征的几何形状(如,直线,圆等)。最基本的霍夫变换是从黑白图像中检测直线(线段)。 霍夫空间 霍夫变换的关键是霍夫空间。 这是左边的图像空间中的一条线,我们要构造的是霍夫空间,右边是霍夫空间。 在这个表述中,我们有...

知识搬运工的博客 3475

【目标跟踪】奇葩需求如何处理(二)

一、前言。

感知算法 1015

OpenCV 工业视觉代码案例:检测螺丝漏打(Missing Screw Detection)

固定相机和光源,使用方法一(二值化统计)。这是最快能看到效果的方法。如果背景复杂,使用方法二(模板匹配)结合差分法(当前图 - 标准图)。如果环境不可控,直接采集数据上。

学亮编程手记 914
上一篇: Opencv学习——霍夫线变换
下一篇: Opencv+QT——opencv在qt中如何配置
图灵小眼睛
博客等级 码龄8年 152粉丝 100原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值