本发明涉及图像识别领域,具体涉及一种基于Hough变换实现圆的快速检测方法
背景技术:
图像处理中对圆进行检测及确定其参数是图像特征检测和模式识别中的一项重要任务,在生物信息识别、产品检测、集成电路板在线质量检测等众多领域中,通常需要对图像中的圆形图案进行检测,以便识别和定位目标。常用的圆检测方法有Hough变换检测圆方法、形状分析法、BP网络分类器方法、基于圆度的计算方法等。目前,Hough变换圆检测(HTCD)方法在噪声、曲线间断,边缘不完整地情况下,仍能够可靠的提取出圆的特征信息,成为常用的圆检测方法,目前行业中提出了随机Hough变换圆检测方法(RHT),该方法在图像空间中随机选取不共线的三个特征点,映射成参数空间中一个点,是多到一的映射,大大减少了计算量,但是在处理带有一定噪声且复杂度较高图像时,由于随机采样的无效点太多,造成了大量的无效累积。此外,一些专家提出了随机圆检测方法(RCD),RCD是针对图像的所有边缘点直接检测,不涉及到空间参数的累积等,提高了计算检测速度,减少了累积内存空间,但是当干扰像素点太多时,需要检测的样本数太多,计算量会大大增加,导致检测速度下降,计算不稳定。Shih-HsuanChiu提出了一种标准Hough变换圆检测的投票方法,减少了计算量和存储空间。W.C.Y.Lam等提出了具有直角特性的点三元组检测方案,方案基于Hough变换将计算空间由三维降到了二维,有一定的抗噪能力,但在二维空间计算复杂度仍然很高。林金龙等提出了用点Hough变换检测圆,根据同一圆上任意两条弦的中垂线相交于圆心的性质,将搜索空间由三维降到一维,降低了计算复杂度和对资源的需求[6],但检测精度仍然不高。
技术实现要素:
为了解决上述算法出现检测精度不高,计算复杂,占用内存多,不能满足速度要求的缺陷,本发明在Hough变换圆检测的基础上进行改进,提出一种新的基于Hough变换实现圆的快速检测方法,该方法首先对原始图像进行预处理,并通过Canny边缘检测方法进行边缘提取,在对提取的边缘进行形状识别,排除非圆,之后利用圆是中心对称图形的几何性质,同时选取圆周上三点,计算出圆心和半径,将搜索空间由三维降到一维,进一步降低了计算复杂度,提高了计算速度,实验表明,该方法同时具有较高的检测精度和抗干扰性。
基于Hough变换实现圆的快速检测方法,包括如下步骤:
步骤1,先对图像进行预处理,将获取的彩色图像转换成灰度图,以消除摄像头在获取图像时所产生的噪声;
步骤2,运用Otsu图像分割技术将Mark点图像从背景图像中精确地分割出来,阈值分割后运用Canny算子进行边缘检测,获取图像边缘信息;
步骤3,对圆周上不重合的点的坐标构造函数f(x,y),然后通过计算f(x,y)来对轮廓进行圆形识别;
步骤4,运用Hough变换圆检测方法获取圆参数。
进一步地,所述步骤3具体地,选取圆周上互不重合的四点A1,A2,A3,A4,坐标值分别为(x1,y1),(x2,y2),(x3,y3),(x4,y4),由圆的性质可知,若四点在圆周上,则必满足弦A1A2和弦A3A4在弦A2A3的异侧;
构造函数:
f(x,y)=(y-y2)(x3-x2)-(x-x2)(y3-y2)
将(x1,y1)、(x4,y4)代入上式:
若f(x1,y1)·f(x4,y4)>0,则弦MN和弦PQ一定在弦NP的同侧;
若f(x1,y1)·f(x4,y4)<0,则弦MN和弦PQ一定在弦NP的异侧;
若f(x1,y1)·f(x4,y4)=0,则弦MN或弦PQ一定与弦NP共线;
对于f(x1,y1)·f(x4,y4)>0的图形可以初步认为是圆,达到圆形识别的效果,由此就可以在检测过程中,排除明显不可能为圆的轮廓,提高后续Hough变换检测圆的效率。
进一步地,所述步骤4中获取圆的参数的步骤具体地为:
图像上每一点的灰度值,如下式所示:
p(m,n)表示第m行第n列的像素点坐标值;
定义图像中任意一点关于过圆心的直线x=a0,y=b0对称的点组集合为|P|={(A1,B1,C1),(A2,B2,C2)…(An,Bn,Cn)},在圆上选取Ai,Bi,Ci三点,(Ai,Bi,Ci)∈|P|,Ai,Bi,Ci坐标分别为(mi,ni)、(qi,ni)、(mi,zi),点Ai与点Bi关于圆心横坐标x=a0对称,点Ai与Ci关于圆心纵坐标y=b0对称,Ai,Bi,Ci三点构成一个以直径为斜边的直角三角形;
由于图像二值化处理过程中图像边缘存在一定的偏移和误差,因此存在对称点为非边缘点的情况,对此采用对称点上下左右偏移一个像素来处理;
设
当f(mi,ni)×f(qi,ni)=1时Ai(mi,ni)与Bi(qi,ni)是关于圆心横坐标x=a0的对称点,当f(mi,ni)×f(mi,zi)=1时Ai(mi,ni)与Ci(mi,zi)是关于圆心纵坐标y=b0的对称点;
利用圆是中心对称的几何性质可以求出:
圆上的任意不共线三点Ai,Bi,Ci,对应于参量空间中一个点(ai,bi,ri),参量空间中的点用向量表示图像中圆(ai,bi,ri)上的点组(Ai,Bi,Ci)对应参量空间中向量在图像中选取N个点组,得到包括N个向量的向量组,在参量空间中运用Hough变换圆检测对向量值进行累加计数,累计阵列中出现次数最多的向量值就是图像中圆的参数。
实验结果表明,本发明所述的基于Hough变换实现圆的快速检测方法,与标准Hough变换圆检测方法(SHT)和随机Hough变换圆检测方法(RHT)相比,降低了计算复杂度,提高了处理速度,同时降低了对存储空间的需求,且该方法保留了标准Hough变换检测精度高、抗噪能力强的优点,图像中存在干扰因素时,计算速度优势明显,具有较强的抗干扰能力和检查精度,可以满足机器视觉,模式识别等领域检测的要求。
附图说明
图1为图像空间点对应参数空间直立圆锥。
图2为图像空间圆上点在参数空间中的表示。
图3为圆性质图。
图4为圆参数确定示意图。
图5为本发明所述检查方法的步骤流程图。
具体实施方式
下面结合说明书附图对本发明的技术方案做进一步的详细说明。
Hough变换最早于1962年由Paul Hough提出,其基本思想是将检测图像的空间域映射到参数空间,用大多数边界点满足的某种参数形式来描述图像中的边缘曲线,通过投票和设置累加器的方法将图像空间中的复杂问题转换成简单的局部峰值检测问题。
Hough变换是目前检测图像圆的主要方法,它实现了图像空间的边缘点映射到参量空间中一个投票过程,空间的峰值点对应检测图像所需要的参数。传统的Hough变换在参量空间中对三个自由参数圆心坐标(a,b)和半径r进行累积,对存储量和计算量要求很高。
Hough变换检测圆的公式:
其中r0为半径,(a0,b0)为圆心坐标。
在参数空间中,半径为r,圆心坐标为(a,b)的圆表达式为:
(a-xi)2+(b-yi)2=r2
上式表示图像空间的圆对应着参数空间中的一个点,图像空间中的任意一个有效点(xi,yi)在参数空间中对应着一个三维直立圆锥,如图1,该点约束了通过该点的一族圆的参数。对于图像空间中的一个圆,它的半径是固定不变的,而圆周上各个点组成的集合在参数空间中表现为半径相等,而圆心坐标不等的各个圆锥的集合。图像空间中圆上的点映射到参数空间中的一族圆锥的交点正好对应于圆的圆心坐标和圆的半径,即是被检测圆的三个参数,实现Hough变换检测圆。
如图2所示:图像空间中4个边缘点(A,B,C,D)映射到参数空间,在圆心坐标(a,b,r)处相交,对应着在点(a,b,r)的累加器投票值为峰值,从图中可以看出,图像空间到参数空间的映射,是一维到三维的映射,这需要大量的存储空间且计算复杂度高,难以实际应用中对实时性要求较高的圆检测。
基于此,本发明提出基于Hough变换实现圆的快速检测方法,包括如下步骤:
步骤1,先对图像进行预处理,将获取的彩色图像转换成灰度图,以消除摄像头在获取图像时所产生的噪声。
步骤2,运用Otsu图像分割技术将Mark点图像从背景图像中精确地分割出来,阈值分割后运用Canny算子进行边缘检测,获取图像边缘信息。
步骤3,对圆周上不重合的点的坐标构造函数f(x,y),然后通过计算f(x,y)来对轮廓进行圆形识别。
所述步骤3具体地,选取圆周上互不重合的四点A1,A2,A3,A4,坐标值分别为(x1,y1),(x2,y2),(x3,y3),(x4,y4),由圆的性质可知,若四点在圆周上,则必满足弦A1A2和弦A3A4在弦A2A3的异侧。
构造函数:
f(x,y)=(y-y2)(x3-x2)-(x-x2)(y3-y2)
将(x1,y1)、(x4,y4)代入上式:
若f(x1,y1)·f(x4,y4)>0,则弦MN和弦PQ一定在弦NP的同侧。
若f(x1,y1)·f(x4,y4)<0,则弦MN和弦PQ一定在弦NP的异侧。
若f(x1,y1)·f(x4,y4)=0,则弦MN或弦PQ一定与弦NP共线。
对于f(x1,y1)·f(x4,y4)>0的图形可以初步认为是圆,达到圆形识别的效果,由此就可以在检测过程中,排除明显不可能为圆的轮廓,提高后续Hough变换检测圆的效率。
步骤4,运用Hough变换圆检测方法获取圆参数。
所述步骤4中获取圆的参数的步骤具体地为:
图像上每一点的灰度值,如下式所示:
p(m,n)表示第m行第n列的像素点坐标值。
定义图像中任意一点关于过圆心的直线x=a0,y=b0对称的点组集合为|P|={(A1,B1,C1),(A2,B2,C2)…(An,Bn,Cn)},在圆上选取Ai,Bi,Ci三点,(Ai,Bi,Ci)∈|P|,Ai,Bi,Ci坐标分别为(mi,ni)、(qi,ni)、(mi,zi),点Ai与点Bi关于圆心横坐标x=a0对称,点Ai与Ci关于圆心纵坐标y=b0对称,Ai,Bi,Ci三点构成一个以直径为斜边的直角三角形。
由于图像二值化处理过程中图像边缘存在一定的偏移和误差,因此存在对称点为非边缘点的情况,对此采用对称点上下左右偏移一个像素来处理。
设
当f(mi,ni)×f(qi,ni)=1时Ai(mi,ni)与Bi(qi,ni)是关于圆心横坐标x=a0的对称点,当f(mi,ni)×f(mi,zi)=1时Ai(mi,ni)与Ci(mi,zi)是关于圆心纵坐标y=b0的对称点。
利用圆是中心对称的几何性质可以求出:
圆上的任意不共线三点Ai,Bi,Ci,对应于参量空间中一个点(ai,bi,ri),参量空间中的点用向量表示图像中圆(ai,bi,ri)上的点组(Ai,Bi,Ci)对应参量空间中向量在图像中选取N个点组,得到包括N个向量的向量组,在参量空间中运用Hough变换圆检测对向量值进行累加计数,累计阵列中出现次数最多的向量值就是图像中圆的参数。
实验结果表明,本发明所述的基于Hough变换实现圆的快速检测方法,与标准Hough变换圆检测方法(SHT)和随机Hough变换圆检测方法(RHT)相比,降低了计算复杂度,提高了处理速度,同时降低了对存储空间的需求,且该方法保留了标准Hough变换检测精度高、抗噪能力强的优点,图像中存在干扰因素时,计算速度优势明显,具有较强的抗干扰能力和检查精度,可以满足机器视觉,模式识别等领域检测的要求。
以上所述仅为本发明的较佳实施方式,本发明的保护范围并不以上述实施方式为限,但凡本领域普通技术人员根据本发明所揭示内容所作的等效修饰或变化,皆应纳入权利要求书中记载的保护范围内。