改进的Hough变换圆检测算法
一种用于圆检测的改进Hough变换方法
1引言人工图像中,大多数物体都是由线或曲线组成的,所以图像处理中对线或曲线的识别和定位就显得十分重要。
Hough(霍夫)变换是一种用于区域边界形状描述的方法,经典Hough变换常常被用于直线段、圆和椭圆的检测。
其基本思想是将图像的空间域变换到参数空间,用大多数边界点满足的某种参数形式来描述图像中的曲线(区域边界)[1]。
通过设置累加器进行累加,求得峰值对应的点就是所需要的信息。
多年来,许多学者利用Hough变换针对具体情况进行了扩展。
张红民等利用中心点生成圆弧的方法统计一定范围内点的累加值获得圆心[2];孔兵等根据最小二乘法原理用圆来逼近轮廓[3];Leavers采用动态广义Hough变换思想(DGHT)来检测圆[4];魏怡利用分区和跟踪算法改进了DGHT[5];Yip等使用平行切线以及在一个二维累加数组中对4个向量进行累加来获得圆的信息[6]。
所有对Hough变换的扩展都是为了减少该方法所需的较大的存储空间以及降低计算所需的时间。
而这正是Hough变换的最大的缺点。
2圆的Hough变换检测方法2.1基本变换Hough变换可应用于检测图像空间的解析曲线。
解析曲线的参数表示的一般形式是:f(x,a)=0式中,x是解析曲线上的点(二维矢量),a是参数空间中的点(矢量)。
对于圆来说,半径为r,圆心坐标为(a,J)的圆在参数空间中的表示为:(x i-a)2+(y i-J)2=r2(1)此时点x=xi,yi!"T,a=[a,J,r]T,其参数空间为三维。
显然,在参数空间中,(1)式表示的是一个三维锥面。
它表示的物理意义是,图像空间中的圆对应着参数空间中的一个点,而图像空间中的一个点(x,y)对应着参数空间中的一个三维直立圆锥,该点约束了通过该点一族圆的参数(a,J,r),如图1所示。
对于图像空间中的一个圆,它的半径是固定不变的,圆周上的各个点组成的集合在参数空间中就表现为r相等,而a,J 不等的各个圆锥的集合。
基于随机Hough变换的圆检测改进算法
卿 ■ 僵息技术 .僵息亿 I b
基 于 随机 H uh变 换 的 圆检 测 改进 算 法 og
A mpo e to fC rl ee t n B sd o a d mi dHo g rn fr n I rv d Meh do i eD tc o ae n R n o z u hT a s m c i e o
转 ( )否则转( ) 6, 5;
( ) P插入 P, 5将 令其对应 的累加器值 为 l转到 () , 7;
() P 对 应 的累加 器值 t l若小 于 阈值 , 转 6将 加 , 则
( )否则转 () 7, 8;
() 7 K=K+l若 K> ,
数 >J , l 则转 () f 9;
误差。
随机 H ∞小 变换
圆 检测
最 小 点 集
Ab ta t Tf a e nr d c s ali r v d meh d o i l d tcin w ih i b sd o a d m zd I w h sr c is p p r it u e l mp o e to fcr e ee t hc s a e n R n o i - o c o e I o
1 引言
图像中圆的检测是机器视觉 中一项重要任务 。H uh og 变 换“ 是 目前应 用最 广的特征 检测方 法 , 常常被用 于直线 、 圆 和椭圆等特征的检 测。其基本 思想 是将原 图像 变换 到参数 空间 , 大多数边 界点 满足的某 种参数形式来描 述图像 中的 用 曲线 , 过设 置累加 器进 行 累积 , 得峰 值对 应的 点就是 所 通 求 需要 的信息 。在参数空 间不超过二维 的情 况下 , 这种变换 有 较理想的效果 , 当参 数空 间超过 二维时 , 种变 换几乎 不 但 这 可能应用于实 际, 这是因为传统 的 H uh变换计算 量 和 占用 o g 内存很大 。为 了解决这一 问题 , 出现 了许多 改进 的 r u 变 tg oh 换方法 , 随机 r n l  ̄变换 o g 。 就是其中之一。 随机 n wh变换 法采用 了随机采 样 和多对 一 映射 , 即 o, (
hough变换检测圆的一般步骤
hough变换检测圆的一般步骤Hough变换是一种图像处理算法,可用于检测图像中的几何形状,如直线、圆等。
它最早于1962年由Paul Hough提出,用于在图像中检测直线。
之后,Hough变换被扩展用于检测圆。
下面是检测圆的Hough变换的一般步骤。
1.预处理:首先,需要对图像进行预处理,以去除噪声和增强有用的特征。
这可以通过应用图像滤波器、边缘检测等技术来完成。
常用的滤波器有高斯滤波器和中值滤波器。
2. 边缘检测:通过应用边缘检测算法,如Canny边缘检测算法,可以从图像中提取出边缘信息。
3. 参数空间构建:Hough变换通过在参数空间中对每个可能的圆心点和半径进行计数来检测圆。
参数空间是一个二维坐标系统,其中一个轴表示圆心点的x坐标,另一个轴表示圆心点的y坐标。
所有的点在参数空间内都对应着可能的圆。
4.参数空间转换:为了在参数空间中进行计数,需要将每个边缘点转换为在参数空间中的可能圆心点和半径的集合。
5.累加计数:对于每个转换后的边缘点,将其映射到参数空间中的可能圆心点和半径,并对相应的计数器进行累加。
6.阈值化:根据累加计数器的结果,在参数空间中找到可能的圆。
通过设置适当的阈值,可以筛选出累加计数器高于阈值的圆。
7.圆心和半径提取:在参数空间中找到累加计数器高于阈值的圆之后,可以通过从参数空间中提取出圆心坐标和半径的方式来还原检测到的圆。
8.圆检测:通过对检测到的圆进行验证和过滤,可以排除掉一些错误检测的圆。
以上是检测圆的Hough变换的一般步骤。
这些步骤可以作为基础,根据具体需求进行一定的修改和优化。
例如,可以通过设置不同的阈值、调整参数空间的分辨率等方式来改进圆的检测效果。
另外,为了提高效率,还可以使用一些加速技术,如局部累加器、投票框架等。
一种改进的Hough圆检测算法
改进的 S D S A算法进行 , 精匹配利用 圆的两条不平行 弦的中垂线相交 于圆心 的几 何性质 , 对经典 H uh变换 加 og 以改进 , 提高 了检测速度.
关键词 : 圆检 测 ; 板 匹 配 ;S A; Hog 换 模 SD 圆 uh变 中 图分 类 号 :P 9 . 1 文 献 标 识码 : T 3 14 A
e g fcrl rti ma e pe rc s n e lwi h d e i g i o g thn n rcs thn . d e o i ef s n i g rp o es a d d a t te e g ma e w t ru h mac ig a d pe i mac ig c i h h e
因实际拍摄 的图像常常受到光照以及背景不均 匀等因素的干扰 , 直接对灰度 图像进行处理 , 将受到 这些因素的影响, 而使检测精度降低. 边缘包含了丰 富的信息 , 能勾画出 目 标物体轮廓 , 因而对图像先作 边缘检 测可 以有效 去除背 景 等 因素 的影 响. 用 采 Cny an 算子进 行边缘 检测¨ , an JC ny算子是一 阶算
圆检 测是 机器 视 觉 领 域 里 经 常遇 到 的问 题 , 其 在虹 膜检 测 、 油罐 车罐 口定 位 等 实 际 工程 问题 中有
法之一 , 其可靠性高 , 对噪声 、 变形 、 部分区域残缺等 有较好的适应性 , 但该方法的缺点是计算量大 , 资源 需求大. 另外 , 实际图像通常要受到光照 、 背景不均 匀等条件的影响 , 因而影响其计算精度. 现提出一种 将待检测圆图像先作边缘检测 , 再对边缘 图像进行 粗匹配和精匹配的圆检测算法.
维普资讯
第3 3卷第 6期
20 0 6年 6月
改进的Hough变换检测圆方法
me a ns s i g ni ic f a nt l y i n e n g i ne e r i n g .I n o r d e r t o a u t o - d e t e c t t h e c rc i l e a nd a c c u r a t e l y e x t r a c t he t c e n  ̄e nd a r a d i us ,a l l i mp r o ve d Ho ug h t r a n s f o r m a l g o it r h m f o r c i r c l e d e t e c t i o n i s p r o p o s e d .Th e i ma g e b o r d e r i s il f t e r e d t o g e t he t c o n t i n u o u s b o r d e r s . And he t n he t c o n t i n uo u s bo r d e r s a r e s e q u e n c e d nd a e q u a l di v i d e d . On l y t h r e e po nt i s a r e c h o s e or f c o mp u t a t i o n nd a t h r e e d i me n s i o n p ra a me t e r s wi l l b e r e d u c e d t o o n e d i me ns i o n , wh i c h s a v e s he t c o mp u at t i o n a l t i me ,me mo r y s o rc u e s nd a
hough变换检测圆的原理
hough变换检测圆的原理Hough变换是一种常用的图像处理算法,可以用于检测图像中的圆形。
它的原理是将图像空间中的圆形转化为参数空间中的一个点,通过在参数空间中搜索最大投票数来确定图像中的圆形。
Hough变换的基本思想是将图像中的每个边缘点映射到参数空间中,并在参数空间中进行累加。
对于圆形检测来说,参数空间通常是三维的,包括圆心的x坐标、y坐标以及圆的半径。
因此,对于图像中的每个边缘点,都会在参数空间中生成一条曲线。
如果曲线上的点足够多,那么交点所对应的参数就是图像中的圆形。
具体来说,Hough变换的过程如下:1. 初始化参数空间:根据图像的大小和期望的圆形半径范围,初始化一个三维数组作为参数空间。
数组的每个元素对应一个圆心位置和半径。
2. 边缘检测:通过使用边缘检测算法(如Canny边缘检测)获得图像中的边缘点。
3. 参数空间累加:对于每个边缘点,在参数空间中生成一条曲线。
具体的方法是遍历所有可能的圆心位置和半径,计算曲线上的点,并在参数空间中进行累加。
4. 搜索最大投票数:在参数空间中搜索累加值最大的点,该点对应的参数即为检测到的圆形。
5. 圆形绘制:利用检测到的圆心和半径,在图像上绘制检测到的圆形。
Hough变换的优点是对图像中的噪声具有较好的鲁棒性,可以检测到不完整或部分遮挡的圆形。
然而,由于参数空间的维度较高,计算复杂度较高,因此在实际应用中需要进行优化。
总结起来,Hough变换是一种基于参数空间的图像处理算法,可以用于检测图像中的圆形。
通过将图像中的边缘点映射到参数空间中,并在参数空间中进行累加,可以找到最大投票数对应的圆形参数。
虽然Hough变换具有一定的计算复杂度,但其在圆形检测方面具有较好的鲁棒性和准确性,因此被广泛应用于计算机视觉和图像处理领域。
一种基于中点画圆算法的改进Hough变换检测圆方法
Ab t a t T o d c ilnd tcint h iceSg o ti e tr f h c iep n ’ sr c: oc n u t SO ee t t ecrl’ e mercfau eo ema hn a s V o o t
i g s anw i l d tc o to u ow r yj i n emip itc c —rd c g ma e, e cr e e t n me di p tfr ad b n gt d on i l po u i c ei h s oi h re n
作 者简介 :朱 晓林 ( 96 ) 17 一 ,男 ,福建 福州 人 ,高级程 序 员, 实验师 ,硕 士 ,主要研 究方 向为 机器 视觉 。
工 程
图 学
学 报
21 0 0血
直线 、 圆 ( 圆弧 ) 、椭 圆或其 它平 面 曲线等 几何 特 征 的检 测 。其 中,圆形特 征检测 无疑是机 械零
i d c t s h t h r p s d meh di fe t e n i ae a ep o o e t o e f c i . t t S v
Ke r :e gi e ng g a i s y wo ds n ne r r ph c ;mi p n ice pr d i l o tm ;Ho g a s o ; i d oit cr l— o ucng a g r h i u h t nfr r m c r l e e to ,a c mult rvo i g ic ed tc i n c u ao tn
21 0 0年
工 程 图 学 学 报
JoURNAL oF ENG I NEERI NG GRAPHI CS
(标准)Hough变换检测圆
Hough变换检测圆(附:MATLAB程序)分类:图像处理Hough圆2011-12-11 21:37 12587人阅读评论(33) 收藏举报matlab算法图像处理internetfunction任务Hough变换的基本原理在于,利用点与线的对偶性,将图像空间的线条变为参数空间的聚集点,从而检测给定图像是否存在给定性质的曲线。
圆的方程为:(x-a)^2+(y-2)^2=r^2,通过Hough变换,将图像空间对应到参数空间。
附录中的MATLAB程序为网上比较常见的,实际运行中存在一些问题,这里进行些修改。
原理:霍夫变换是图像处理中从图像中识别几何形状的基本方法之一,应用很广泛,也有很多改进算法。
最基本的霍夫变换是从黑白图像中检测直线(线段)。
我们先看这样一个问题:设已知一黑白图像上画了一条直线,要求出这条直线所在的位置。
我们知道,直线的方程可以用y=k*x+b 来表示,其中k和b是参数,分别是斜率和截距。
过某一点(x0,y0)的所有直线的参数都会满足方程y0=kx0+b。
即点(x0,y0)确定了一族直线。
方程y0=kx0+b在参数k--b平面上是一条直线,(你也可以是方程b=-x0*k+y0对应的直线)。
这样,图像x--y平面上的一个前景像素点就对应到参数平面上的一条直线。
我们举个例子说明解决前面那个问题的原理。
设图像上的直线是y=x, 我们先取上面的三个点:A(0,0), B(1,1), C(22)。
可以求出,过A点的直线的参数要满足方程b=0, 过B点的直线的参数要满足方程1=k+b, 过C点的直线的参数要满足方程2=2k+b, 这三个方程就对应着参数平面上的三条直线,而这三条直线会相交于一点(k=1,b=0)。
同理,原图像上直线y=x上的其它点(如(3,3),(4,4)等) 对应参数平面上的直线也会通过点(k=1,b=0)。
这个性质就为我们解决问题提供了方法:首先,我们初始化一块缓冲区,对应于参数平面,将其所有数据置为0.对于图像上每一前景点,求出参数平面对应的直线,把这直线上的所有点的值都加1。
改进的随机Hough变换圆检测算法
计 算机 应 用
J un lo mp trAp lct n o ra fCo ue piai s o
Vo . 0 S pp . 13 u 11
J n O 0 u e2 1
文章编号 :0 1 9 8 (0 0 S —0 7 0 10 — 0 1 2 1 ) 1 14— 3
I p o e a d m ie u h t a s o m l o i m 0 m r v d r n o z d Ho g r n f r ag rt h fr
cr l t ci n ice dee to
YU AN i L .CAO Z i u h— i r
( et fr m铆 Ts h n cu ntueo pi , i ca iБайду номын сангаасn hss hns cdmyo c ne C a# h nJl 30 3 Cne o r e ,C agh nIstt fo tsFn Me nc a dP yi ,C iee a e t i c e h s c A fSi cs h ncu in1 03 , e , i
法利用梯度 来预先判断随机采样的三个点是否在 同一个圆上 , 而大大减少 了无效 累积; 从 另外 , 该算 法还在 圆参数 的计 算、 阚值的确定、 候选 圆的确认 等方 面进行 了改进 。实验结果表 明, 该算法精度 高, 速度 快, 检测性能有了较大提 高。
关键词 : 圆检 测 ; 随机 Hog u h变换 ; 梯度 ; 无效 累积 ; 选圆 候 中图分类号 : P 9 . 1 T 3 14 文献标志码 : A
)
Ke r s i l d t t g a dm zdH uhTa s r ( I) rdet n adacm a o;c d a i l ywod :c c e c n;R n o i og r f m m- ;gain;ivl cu u tn a i t c ce r e ei e n o T i li n de r
改进的Hough变换实现圆检测
改进的Hough变换实现圆检测段黎明;汪威;张霞【期刊名称】《计算机集成制造系统》【年(卷),期】2013(19)9【摘要】为了自动检测出图像中的圆并精确测量其参数,提出一种改进的点Hough变换圆检测方法.首先对提取边缘后的轮廓进行一次筛选,得到所有的连续边缘轮廓;然后进行二次筛选,排除那些明显不可能为圆的图形,获得最终候选边缘轮廓.对候选边缘点组进行快速点Hough变换圆检测,计算圆的直径值和圆心坐标值,在检测过程中,采用自适应的点选择步长值和累加器判断阈值.利用VC+ +6.0开发了圆检测系统实验软件,并进行了对比实验,结果表明该方法可以有效解决原算法中固定值导致检测精度不高、误检测和漏检测的问题.【总页数】5页(P2148-2152)【作者】段黎明;汪威;张霞【作者单位】重庆大学光电技术及系统教育部重点实验室ICT研究中心,重庆400030;重庆大学机械工程学院,重庆400030;重庆大学光电技术及系统教育部重点实验室ICT研究中心,重庆400030;重庆大学机械工程学院,重庆400030;重庆大学光电技术及系统教育部重点实验室ICT研究中心,重庆400030;重庆大学机械工程学院,重庆400030【正文语种】中文【中图分类】TP391【相关文献】1.基于hough变换圆检测算法的改进 [J], 孙方敏;乔艳涛;孙祥国;陈伟;刘纪鹏2.一种改进的基于Hough变换的精确圆检测方法 [J], 唐庆博;唐超;张恒浩3.基于随机Hough变换改进的快速圆检测算法 [J], 朱正伟;宋文浩;焦竹青;郭晓4.基于改进轮廓提取的Hough变换椭圆检测方法 [J], 翟永立; 丁雷; 裴浩东5.基于Hough变换的圆检测算法的改进 [J], 龚昕; 张楠因版权原因,仅展示原文概要,查看原文内容请购买。
基于改进随机Hough变换的圆形目标检测算法
xij ,
y0)为区域重心坐标,(
yij )为 第i 个 边 缘 点 集 中
任意点的坐标 .
d=
定义σ 为边界点集pi 到区域重心距离的均方差:
σ=
定义 C 的计算公式为
4
n
11
2
∑ [ (xij ,yij )- (x0,y0) -d ] .
4 n∑
i=1 j=1
(
5)
σ
(
.
6)
d
当区域趋于圆时,特征量 C 单调递减且趋向于 0,而且还不受区域平移、旋转和尺度变化的影响,可以
和为
H=
n
∑
j=1
2
2
(
xj -a)
+(
yj -b) -r .
当 H 达到最小值时,认为该理想圆即为候选圆,同时得到候选圆的参数(
a,
b,
r).
(
7)
7)基于随机 Hough 变换的候选圆验证 .候选圆中可能存在一些错误拟合的圆,为了去除假圆,需要对
候选圆进行验证 .候选圆的参数为(
a,
b,
r),如果边缘点 pi(
C=
根据 C 判断区域图形是否为圆形,若为圆形则计算该圆参数,否则进入第 6 步 .
6)基于随机 Hough 变换的候选圆检测 .在 区 域 中 随 机 选 择 一 个 边 缘 点 集 pi,并 对 pi 中 的 点 pi(
xj,
a,
b,
r),则 各 点 到 圆 的 距 离 的 绝 对 值 的
yj)进行圆拟合得到候选圆 .具体拟合算法为:设理 想 圆 的 参 数 为(
y)为 图 像 中 的 像 素 坐 标 .对 于 圆 形 检 测 来 说,(
一种改进的基于Hough变换的精确圆检测方法
中图分 类号 : T P 3 9 1 . 4 l
文 献标 识码 : A
T A N G Q i n g — b o , T A N G C h a o , Z HA N G H e n g — h a o ( R & D C e n t r e , C h i n a A c a d e m y o fL a u n c h V e h i c l e T e c h n o l o g y , 1 0 0 0 7 6 , hi C a) n
第4术
Ae r o n a u t i c a l Co mp ut i n g Te c h ni q ue
Vo 1 . 4 7 No . 3
Ma v . 2 01 7
2 0 1 7年 5月
一
种 改进 的基 于 Ho u g h变换 的精确 圆检 测 方法
Ab s t r a c t : Du e t o c o mp l e x b a c kg r o u n d, t he f a s t a n d a c c u r a t e p o s i t i o n i d e n t i ic f a t i o n o f c o o p e r a t i v e c i r c l e t a r g e t s i s v e r y i mp o r t a n t i n t h e s p a c e c r a f t d o c k i n g. To o v e r c o me t h e l i mi t a t i o n s o f t he Ho u g h t r a n s f o r m f o r e d g e d e t e c t i o n, t h e i ma g e p r o c e s s i n g me t h o d i s u s e d t o g r e a t l y r e d u c e t h e i n v a l i d p i x e l s i n Ho u g h t r a n s - or f m a n d i mp r o v e t h e e ic f i e nc y o f Ho u g h t r a n s f o m . r By us i ng l e a s t s qu a r e s it f t i n g me t ho d i n t h e p o i n t s de t e c t e d b y Ho u g h t r a ns f o m , r t h e s u b p i x e l a c c u r a c y o f t h e c e n t e r a n d r a d i u s i s a c h i e v e d .On t he o n e ha nd, t h e Ho ug h t r a n s f o m r i s S O r o bu s t t h a t i t c a n e f f e c t i v e l y s o l v e t he p r o b l e m t h a t t h e l e a s t s q u a r e s it f - t i n g i s s e n s i t i v e t o t h e o u t l i e r s; On t h e o t h e r h a nd, l e a s t s q u a r e s me t h o d c a n s i g ni f i c a n t l y i mp r o v e t h e l o —
Hough变换对圆的检测
Hough变换对圆的检测Hough变换对圆的检测Hough变换的基本原理在于,利⽤点与线的对偶性,将图像空间的线条变为参数空间的聚集点,从⽽检测给定图像是否存在给定性质的曲线。
圆的⽅程为:(x-a)*(x-a)+(y-b)*(y-b)=r*r ,通过Hough变换,将图像空间(x,y)对应到(a,b,r)参数空间。
Hough对圆的检测程序如下:function [hough_space,hough_circle,para] = hough_circle(BW,step_r,step_angle,r_min,r_max,p)% %%%%%%%%%%%%%%%%%%%%%%%%%%% input% BW:⼆值图像;% step_r:检测的圆半径步长% step_angle:⾓度步长,单位为弧度% r_min:最⼩圆半径% r_max:最⼤圆半径% p:以p*hough_space的最⼤值为阈值,p取0,1之间的数% %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% output% hough_space:参数空间,h(a,b,r)表⽰圆⼼在(a,b)半径为r的圆上的点数% hough_circl:⼆值图像,检测到的圆% para:检测到的圆的圆⼼、半径[m,n] = size(BW);size_r = round((r_max-r_min)/step_r)+1;size_angle = round(2*pi/step_angle);hough_space = zeros(m,n,size_r);[rows,cols] = find(BW);ecount = size(rows);% Hough变换% 将图像空间(x,y)对应到参数空间(a,b,r)% a = x-r*cos(angle)% b = y-r*sin(angle)for i=1:ecountfor r=1:size_rfor k=1:size_anglea = round(rows(i)-(r_min+(r-1)*step_r)*cos(k*step_angle));b = round(cols(i)-(r_min+(r-1)*step_r)*sin(k*step_angle));if(a>0&a<=m&b>0&b<=n)hough_space(a,b,r) = hough_space(a,b,r)+1;endendendend% 搜索超过阈值的聚集点max_para = max(max(max(hough_space)));index = find(hough_space>=max_para*p);length = size(index);hough_circle=zeros(m,n);for i=1:ecountfor k=1:lengthpar3 = floor(index(k)/(m*n))+1;par2 = floor((index(k)-(par3-1)*(m*n))/m)+1;par1 = index(k)-(par3-1)*(m*n)-(par2-1)*m;if((rows(i)-par1)^2+(cols(i)-par2)^2<(r_min+(par3-1)*step_r)^2+5&... (rows(i)-par1)^2+(cols(i)-par2)^2>(r_min+(par3-1)*step_r)^2-5) hough_circle(rows(i),cols(i)) = 1;endendend% 打印结果for k=1:lengthpar3 = floor(index(k)/(m*n))+1;par2 = floor((index(k)-(par3-1)*(m*n))/m)+1;par1 = index(k)-(par3-1)*(m*n)-(par2-1)*m;par3 = r_min+(par3-1)*step_r;fprintf(1,'Center %d %d radius %d\n',par1,par2,par3);para(:,k) = [par1,par2,par3];end运⾏如下程序:clc,clear allI = imread('2.bmp');[m,n,l] = size(I);if l>1I = rgb2gray(I);endBW = edge(I,'sobel');step_r = 1;step_angle = 0.1;minr = 20;maxr = 30;thresh = 0.7;[hough_space,hough_circle,para] = hough_circle(BW,step_r,step_angle,minr,maxr,thresh);subplot(221),imshow(I),title('原图')subplot(222),imshow(BW),title('边缘')subplot(223),imshow(hough_circle),title('检测结果')运⾏结果如下:Center 60 27 radius 20Center 61 27 radius 20Center 62 27 radius 20Center 63 27 radius 20…。
opencv hough找圆算法
opencv中的Hough变换是一种常用的图像处理算法,它可以用来检测图像中的圆形。
在本文中,将介绍如何使用opencv的Hough变换算法来找到图像中的圆。
1. 算法原理Hough变换是一种常用的图像处理算法,它可以用来检测图像中的直线、圆形等几何形状。
Hough变换的原理是将图像空间中的像素点映射到参数空间中,从而能够在参数空间中找到拟合图像中特定几何形状的参数。
对于找圆算法来说,Hough变换的参数空间通常是圆心坐标和半径。
具体而言,对于一幅图像,我们需要在参数空间中建立一个累加器数组,数组的每一个元素表示一个可能的圆心坐标和半径。
然后对图像中的每一个像素点,我们计算它到每一个可能的圆心的距离,如果距离小于某个阈值,则在累加器数组中相应的位置加一。
我们就可以在累加器数组中找到累加值最大的位置,从而得到图像中的圆。
2. opencv中的实现在opencv中,我们可以使用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 )其中,InputArray表示输入图像,OutputArray表示输出的圆的参数,method表示检测方法,dp表示累加器分辨率和图像分辨率的比值,minDist表示检测到的圆之间的最小距离,param1和param2分别表示Canny边缘检测的两个阈值,minRadius和maxRadius表示圆的最小半径和最大半径。
使用HoughCircles函数,我们可以简单地找到图像中的圆。
下面是一个示例代码:Mat src = imread("circle.jpg");Mat gray;cvtColor(src, gray, COLOR_BGR2GRAY);GaussianBlur(gray, gray, Size(9, 9), 2, 2);vector<Vec3f> circles;HoughCircles(gray, circles, HOUGH_GRADIENT, 1, gray.rows / 8, 200, 100, 0, 0);在这段示例代码中,我们首先读入一张图像,并将其转换为灰度图像。
基于hough变换圆检测算法的改进
基于hough变换圆检测算法的改进孙方敏;乔艳涛;孙祥国;陈伟;刘纪鹏【摘要】传统的hough变换在进行圆的检测时,是对整幅图像进行计算的,因此计算量大,运行速度慢,而且不适用于复杂的图像.在用三坐标测量机的测头部分进行相机标定时,除三坐标测量机的圆形测头外,图像中还有多个圆形固定孔,严重影响了圆形测头的检测,因此传统的hough变换圆检测算法不能准确测出测头的圆心.针对以上问题,文中介绍了选定感兴趣区域的改进方案.感兴趣区域包含了三坐标测量机测头的大体位置,只对感兴趣区域进行hough变换可以大大减少计算量,提高运行速度,还能忽略其他相似图形的干扰,将三坐标测量机的测头部分快速检测出,并得到其在像素坐标系中的坐标.【期刊名称】《机械工程师》【年(卷),期】2016(000)010【总页数】3页(P29-31)【关键词】相机标定;三坐标测量机;hough变换;测头部分【作者】孙方敏;乔艳涛;孙祥国;陈伟;刘纪鹏【作者单位】四川理工学院机械工程学院,四川自贡643000;四川理工学院机械工程学院,四川自贡643000;四川理工学院机械工程学院,四川自贡643000;四川理工学院机械工程学院,四川自贡643000;四川理工学院机械工程学院,四川自贡643000【正文语种】中文【中图分类】TP391.7为了进一步提高相机标定的精度,通过对高精度的三坐标测量机的侧头的空间坐标进行提取,完成相机的标定工作。
三坐标测量机的测头部分是一个圆球形,因此在空间中任意位置进行拍摄,它的图像都是一个圆形,通过hough变换圆检测可以方便地检测出测头的圆心坐标,即测头圆心在像素坐标系中的坐标。
在用三坐标测量机测头部分进行相机标定的图像中,三坐标测量机的圆形测头外,图像中还有多个圆形固定孔,严重影响了圆形测头的检测,因此传统的hough变换圆检测算法不能准确地测出测头的圆心,同时对整幅图像进行hough变换圆检测,计算量太大,运行速度慢。
一种改进的基于对称性的Hough变换圆检测算法
一种改进的基于对称性的Hough变换圆检测算法
王红茹;丁文
【期刊名称】《微电子学与计算机》
【年(卷),期】2014(0)6
【摘要】为提高圆形轮廓目标检测的快速性,提出一种改进的基于对称性的Hough变换圆检测算法.首先对图像进行去噪和边缘提取,并剔除边缘点中可能共线的点;然后利用圆的对称性分两步在一维空间中利用Hough变换投票得到圆心坐标;最后在一维参数空间利用Hough变换累加半径投票值得到半径.对比实验表明,提出的算法有较高的识别准确率和较高的运算速度.
【总页数】4页(P121-124)
【关键词】计算机视觉;改进的Hough变换;对称性;圆检测;共线点
【作者】王红茹;丁文
【作者单位】江苏科技大学机械工程学院
【正文语种】中文
【中图分类】TP391.41
【相关文献】
1.一种基于中点画圆算法的改进Hough变换检测圆方法 [J], 朱晓林;高诚辉;何炳蔚;黄敏纯;陈杰
2.一种随机Hough变换检测圆的改进算法 [J], 王建锋;吴庆标
3.一种基于随机Hough变换圆检测的改进算法 [J], 赵桂霞;黄山
4.基于圆对称性和随机选点改进霍夫变换圆检测算法 [J], 张汝祥;陈德林;季江伟;张伟昕;杨力;王勇
5.基于Hough变换的圆检测算法的改进 [J], 龚昕; 张楠
因版权原因,仅展示原文概要,查看原文内容请购买。
hough变换圆拟合
hough变换圆拟合
Hough变换圆拟合(Hough transform circle fitting)是一种用于从图像中检测圆的技术。
它是从Hough变换(Hough transform)算法演变而来的。
Hough变换圆拟合算法使用梯度信息来检测圆,并且它能够检测出各种大小、位置和形状的圆。
算法步骤如下:
1. 首先对图像进行预处理,如灰度化、边缘检测等。
2. 选择一组圆心候选点,可以采用图像中的各种特征点,例如边缘点、角点、中心点等。
3. 对于每个候选点,设定一个半径范围,然后在这个半径范围内搜索圆。
4. 对于每个搜索到的圆,计算出它的梯度值。
如果梯度值大于设定的阈值,则将这个圆作为候选圆。
5. 重复步骤3和步骤4,直到所有的候选点都被搜索完毕。
6. 统计所有候选圆的得票数,并根据得票数高低进行排序。
7. 选取得票数最高的圆作为最终检测结果。
Hough变换圆拟合算法的优点是可以检测出各种大小、位置和形状的圆,它的缺点是计算量大,需要较长的运行时间。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
维空 间 中进 行 累 加计 数 求 出 圆 心 坐 标 , 共 进 行 了 2×N 次 计
算,复杂度函数为:
f1(N)=O(2N)
(9)
同理,计算半径时,共进行了 N 次计算,复杂度函数为:
f2(N)=O(N)
(10)
故本文算法在执行时共进行了 3×N 次计算,复杂度函数
为:
f(N)=f1(N)+f2(N)=O(3N)
利用圆心坐标(a,b),将边缘像素点 pij 代入圆方程(x-a)2+ (y-b)2=r2,计 算 出 一 个 候 选 半 径 r,在 一 维 空 间 中 采 用 Hough 变换对候选半径 r 进行累加计数。 看 r 的计数值 A(r)是否大 于 构 成 圆 允 许 的 最 小 点 数 Tm =λ×2πr(λ 为 比 例 系 数 ,本 文 中 λ=0.8)来确定真圆,r 即为该圆的半径。
(11)
O(N3)远大于 O(3N),由此可见,检测效率大大提高。
3 实验结果
本文的所有实验都是在 248 MB 内存的 Celeron1700 MHz 计算机上用 VC++6.0 编程实现的。 3.1 实验 1
实 验 1 采 用 的 图 像 如 图 2(a)所 示 ,其 大 小 为 280×220, 图中含有 3 个已知圆,图 2(b)为用 Kirsch 算子提 取 的 边缘 图 像,图 2(c)为半径累积的描述图,表 1 为用 SHT,RHT 和本文 算法对图 2(b)分别进行检测的平均执行时间的比较结果 (执 行 50 次)。 表 2 为用本文算法对图 2(b)进行检测的检测值与 真实值的比较。
1.1.1 单圆圆心检测
计算单圆圆心横坐标 a 的算法步骤:
1)遍历整幅图像,找出满足以下条件的像素点 pxj。 ①像素点为非边缘点 pxj(与行数 x 无关)。 ②对 pxj 的左右相邻像素点进行搜索,找到左右相邻的第
一个边缘像素点,记为 mxp(向左搜索),lxq(向右搜索)。
③pxj -mxp =lxq -pxj
a 上。
且 a=ni =ni+1=… …=ni+k(横 坐标 值 )
(4)
所以可以通过对每一行进行扫描, 找出这样的对称点,
并 在 一 维 空 间 中 采 用 Hough 变 换 对 它 们 的 中 点 进 行 累 加 计
数,计数最大值对应的参数坐标即为 a 的值。
图 1 圆心的获取 Fig. 1 Detect circle center
测算法。 它的最大优点是:对噪声不敏感,检测后可有效去 计算量,同时使用动态链表结构降低了参量分配空间,但随
噪;而且在圆变形,甚至部分区域丢失的情况下仍然可以得 着圆和噪声的增多,随机采样的无效累积增多,性能将大大
到比较理想的结果。
降低。 此外 ,林 金 龙等 提 出 的一 种 用 点 Hough 变 换 实 现圆 检
求量过大而不合实际。 为了克服这些缺点,XU[2-3]等提出了随 为中心对称图形的几何特征,通过 Hough 变换计算出圆心,然
机 Hough 变 换 (Randomized Hough Transform,RHT), 在 图 像 后再进行一次 Hough 变换计算出圆半径。 该算法不仅有效提
空间随机地选取非共线的三个点映射成参数空间的一个点, 高了圆检测效率,而且在圆和噪声增多时,性能不会降低。
快 速 而 准 确 地 检 测 出 圆 及 其 参 数 是 计 算 机 视 觉 和 模 式 心的 性 质[4],对圆 参 数 进行 求 解 ;以随 机 采 样到 的 2 个 图 像 点
识 别中 的 一 项重 要 研 究内 容 , 在 机器 视 觉 自动 测 量 系统 、智 及在 此 两 点 的 中 垂 线 上 搜 索 第 3 个 图 像 点 来 确 定 候 选 圆 [5];
关键词: 机器视觉; 模式识别; 圆检测; Hough 变换; 中心对称
中图分类号: TP391
文献标识码: A
文 章 编 号 :1674-6236(2011)14-0168-04
Improved Hough transform circle detection algorithm
SHANG Lu, LI Rui, SONG Xin-yu (Key Lab for Optoelectronic Technology&System of the Ministry of Education,Chongqing University,
是“多对一”的映射。 当用 RHT 处理简单图像时,它表现出相 当优异的性能,但在处理复杂图像时,由于随机采样引入大
1 原理
量的无效采样和累积,使算法的性能下降。 为此,很多学者提
圆的标准方程为:
出了改进的 RHT 算法。 如:利用圆内接直角三角形长边过圆
x2+y2+2ax+2by+c=0
(1)
收 稿 日 期 :2011-04-22
假 设 圆 心 坐 标 为 (a,b),图 1(a)中 hi 为 数 字 图 像 中 第 i 行的水平扫描线 。 li,mi 为 hi 与圆 的 两 个交 点 ,ni 为 li 和 mi 的
中点。 它们满足:
li +mi=2×ni(li,ni,mi 取横坐标值)
(3)
由于圆是中心对称图形,故圆心的横坐标必定在直线 x=
Hough 变 换 的 基 本 思 想 是 将 图 像 空 间 中 具 有 一 定 关 系 测方法[7],极大地降低了计算复杂性和对资源的需求;Chen 等
的像 元 进 行聚 类 ,寻 找能 把 这 些像 元 用 某一 解 析 形式 联 系 起 提 出 了 一 种 非 RHT 的 随 机 圆 检 测 算 法 (Randomized Circle
(7)
(pxj,mxp,lxq 取横 坐 标 值)
2)在 一 维 空 间 中 采 用 Hough 变 换 对 满 足 条 件 的 pxj 进 行 A(Pxj)累加计数 。
3)参数 空 间 中 A(Pxj)最 大 值 对应 的 pxj 即 为圆 心 横 坐标 , a=pxj(pxj 取 横 坐标 值 )。
稿 件 编 号 :201104103
式中含有 3 个参数。 在本文算法中,3 个参数并不是一次性求
基 金 项 目 :国 防 科 工 委 国 防 军 工 计 量 “十 一 五 ”计 划 重 点 项 目 (B20301118)
作者简介:尚 璐(1984—),男,重庆人,硕士研究生。 研究方向:机器视觉,数字图像处理。
来 的 参 数空 间 累 积对 应 点 。 但由 于 圆 有 3 个 自 由 参数 ,需 在 Detection,RCD)[8], 它在中等以下的噪声比情况下检测速度较
三维 参 数 空间 中 进 行累 积 ,使 得这 种 做 法因 计 算 量和 内 存 需 RH圆
将 标 准 Hough 变 换 检 测圆 时 的 三维 空 间 转换 为 一 维空 间 ,利 用圆 为 中 心对 称 图 形的 几 何 特征 计 算 圆心 ,然 后 通 过 一
维 Hough 变换进行半径累积,得到圆半径。 实验证明,该算法运行速度快,占用内存小,抗噪性能好,对单个 圆 和 多个
圆同样有效,具有较高的实用价值。
2 复杂度分析
在标 准 Hough 变换 检 测 圆算 法 中 ,由于 圆 有 3 个 自 由 参
数 ,需 要 在 三 维 参 数 空 间 中 进 行 累 积 ,共 进 行 N3 次 计 算 (假
设图中有 N 个像素点),复杂度函数为:
f(N)=O(N3)
(8)
按照本文的方法,对复杂度进行分析。 计算圆心时,在一
同 理 可 以 计 算 出 单 圆 圆 心 纵 坐 标 ,b=pix (pix 取 纵 坐 标 值)。
这 样 就 求 得 了 圆 心 坐 标 (a,b)。 1.1.2 多圆圆心检测
多个圆的圆心检测与单个圆的圆心检测类似。 在数字图 像中,圆周包含的像素点越多,圆的半径就越大。 根据这一性 质,可知半径越大的圆,圆周中包含的对称点就越多。 故在检 测 N 个 圆 的 圆心 时 ,参 数空 间 中 A(Pij)最大 的 N 个 值所 对 应 的 Pij即为它们的圆心坐标。 1.2 半径累积
Chongqing 400030,China)
Abstract: Basing on the excessive time and space requirements associated with the Hough transform circle detection,we have proposed an improved Hough transform circle detection algorithm.This algorithm is to convert three-dimensional parameter based on the standard Hough transform circle detection to one-dimensional parameter,and adopt the geometrical character which circle is a centrosymmetric figure to calculate the centre of the circle,then calculate the radius of the circle in accumulation space based on the Hough transform.The result of experiment shows that the algorithm greatly reduces runtime and storage space, has good anti-noise performance and higher practical value, whether detects single circle or multi-circle. Key words: machine vision; pattern recognition; circle detection; Hough transform; centrosymmetric figure