理工大学毕业论文
(a) 原始图像 (b) Roberts算子
(c) Sobel算子 (d) Prewitt算子
(e) 拉普拉斯算子 (f) Canny算子
图3-2 边缘算子的边缘检测图像
10
理工大学毕业论文
3.2霍夫变换
利用上述微分算子对图像进行检测所得的边界常常会发生断裂现象,将边缘连接起来的方式主要有以下四种:曲线拟合、启发式搜索、邻域端点搜索和霍夫变换(Hough变换)?6?。
霍夫变换的主要优点是受噪声和曲线间断的影响较小,利用霍夫变换除了可以进行边界连接之外,还可以用来直接检测某些已知形状的目标。
因此,在此选择霍夫变换进行边缘连接。
霍夫变换是利用图像的全局特征将边缘像素连接起来形成封闭边界的一种连接方法。假设需要从给定图像的n个点中确定哪些点位于同一条直线上,那么可以将其看成是根据已知直线上的若干点来检测直线的问题。解决这一问题的一个直接方法就是先确定所有由任意两点决定的直线,然后从中找出接近具体直线的点集,这样大约需要进行n2?n2次运算才能完成,实际中是很难满足这样大的计算量要求的,利用霍夫变换就可以用较少的计算量来解决这一问题?6?。
3.2.1利用霍夫变换检测图像边缘的算法
Hough变换本来是应用于直线检测中的,充分体现了Hough变换具有明了的几何解析性、一定的抗干扰能力以及易于实现并行处理等优点。人们在对图像进行几何特征检测时,感兴趣的往往有直线,圆,椭圆等等。因此,对Hough变换进行改进,也可以应用于图像边缘检测。
1、利用霍夫变换检测直线
Hough变换的基本思想是利用了点与直线的对偶性的特性,在图像空间中,所有过点的直线都满足式3-5:
y?kx?b (3-5)
其中,k表示直线的斜率,b为截距,用极坐标表示式如式3-6:
??xcos??ysin? (3-6)
其中,??,??定义了一个从原点到直线上最近点的向量,该向量与直线垂直。上式就称为直线的霍夫变换。显然,x?y平面中的任意一条直线都与???空间(称为参数空间)的一个点相对应,也就是说,x?y平面中的任意直线的霍夫变换是对数空间中的一个点,在x?y平面中,过?x,y?点的直线有很多条,每一条都对应参数空间的一个点,此时可以将上式中的x和y看成是参数空间中的常数,那么x?y平面中过点?x,y?的直线所对应的点就在参数空间中形成了一条正弦曲线,也就是说x?y平面上的点对应于参数空间中的一条正弦曲线。由于
x?y平面中的直线上的各个边缘点都满足参数相同(假设为?0和?0)的等式,所以x?y空
11
理工大学毕业论文
间中所有边缘点对于的正弦曲线都相交于点??0,?0?。为了找出这些边缘点构成的直线,可以建立一个位于参数空间中的直方图,对于第一个边缘点,给参数空间中所有与这对应的正弦曲线的直方图方格一个增量。于是,当所有边缘点都经过这种处理后,包含??0,?0?的方格将具有局部最大值,通过对参数空间的直方图进行局部最大值的搜索就可以获得边界直线的参数?7?。
2、利用霍夫变换检测圆
Hough变换是通过提取分布于目标圆周上的参数及点的特征值来检测圆或圆弧的。为了检测目标外形,对图像上的每个点定义一个参数空间的映射。Hough变换通过在参数空间找寻特征值(峰值或最大值点)得到位于图像空间中的特征(目标形状)来转换问题。
对于已知半径的圆Hough变换可以检测任意已知表达形式的曲线,关键在于选择合适的参数空间。我们可以根据曲线的表达形式决定其参数空间。当检测某一已知半径的圆时,可以使用与原图像空间相同的空间作为其参数空间。则原图像空间中的一个圆对应参数空间中的一个点,参数空间的一个点对应图像空间中一个圆,原图像空间中在同一圆上的点,它们的参数相同即a,b相同,它们在参数空间对应的圆就会过同一点(a,b),因此,将原图像中的所有点变换到参数空间之后,依据参数空间中点的聚集度就可判断出原图像空间中有无近似于圆的图形。
对于未知半径的圆,在一个xy平面图像中确定一个圆至少需要三个元素,即圆心的x轴和y轴坐标,圆的半径,因此Hough变换检测圆的目的就是检测出图像中各个圆的圆心坐标以及圆的半径。其基本思想是将原图像空间中边缘点映射至参数空间中,再将参数空间中得到的全部坐标点元素所对应的累加值进行统计,并根据此累加值来判断圆的大小和圆心的位置。例如,在xy平面上的方程如式3-7所示:
?x?a?2??y?b?2?r2 (3-7)
其中点(a,b)为圆心坐标,r为圆半径,点(x,y)为圆周上的一点,将其转换为参数坐标系(a,b,r),方程如式3-8所示:
?a?x?2??b?y?2?r2 (3-8)
可看出此方程为圆锥面,对于原图像中任意确定的一个点在参数空间都有一个三维锥面与其对应。
在Hough变换检测圆时,可以利用梯度信息在很大程度上加快圆检测的速度。对圆周而言,其梯度方向只有背离圆心或者指向圆心,当梯度指向圆心,圆心就在梯度的延长线上,而当梯度背离圆心,圆心则在梯度的反向延长线上。所以,边缘梯度信息的加入可以预估圆心的位置,这样可以使算法的运算量明显减少,并且可以有效抑制虚假局部最大值。圆心位
12
理工大学毕业论文
置可以用极坐标方程形式表达如式3-9所示:
?a?x?r?cos??x,y? (3-9) ???b?y?r?sin?x,y?边缘像素?x,y?处的梯度方向为??x,y?。前一组公式是梯度方向背离圆心,后一组为梯度方向指向圆心。以前一种情况为例,边缘图像中每个边缘像素点?x,y?都可以算出其相应的梯度方向??x,y?。通过前一个公式可算出圆心坐标?a0,b0?,对于参数空间可能的半径r0,其相应的参数空间累加器单元加一,最后找到累加器的局部最大值,就得到一个圆?4?。 3.2.2 结果分析
(a) 原始图像 (b) 灰度图像
(c) 二值变换图像 (d) 霍夫变换检测边缘
图3-3霍夫变换边缘检测图像
运用MATLAB进行仿真,对于图3-3(a)中的图像,检测该图像的边缘,首先将彩色图像转换为灰度图像,如图3-3(b)所示。然后进行霍夫变换图像检测,仿真结果如图3-3所示。由图3-3(c)和图3-3(d)比较可以发现,用霍夫变换检测的边缘与通过二值图像检测出的图像边缘
13
理工大学毕业论文
效果类似,仿真结果比较理想,霍夫变换受噪声和曲线间断的影响较小?7?。但是,得到的边缘并不是连续的边缘,说明检测的效果还不算太理想。而且,这种方法的缺点是运算量太大。另外,由于不考虑各点之间的距离信息而产生了所谓的过连接现象。为了克服运算量大的缺点,可以把图像划分为小块,对各块图像利用Hough变换,然后再将各部分边缘连接起来,或者增加变换过程中的遍历步径,从而减少运算量加以改进。
14