Hough变换原理要点.docx
《Hough变换原理要点.docx》由会员分享,可在线阅读,更多相关《Hough变换原理要点.docx(10页珍藏版)》请在冰豆网上搜索。
Hough变换原理要点
摘要
人类对物体的识别最主要是对物体外形的识别,图像的形状检测在图像处理以及模式识别中是十分重要的。
Hough变换作为目标形状特征提取的有效方法得到了广泛的应用。
但Hough变换算法主要应用于二值图像(即边缘图像),因此在对灰度图像进行Hough变换前需要对其进行预处理(包括图像的滤波与边缘检测)。
图像预处理作为Hough变换目标检测过程中重要的前期工作,其结果将直接影响检测结果的好坏。
文中介绍了图像中常见的两种噪声,对图像的空间域噪声滤波做了一些研究,分析了高斯滤波与中值滤波的局限性,在双边滤波的基础上提出了一种基于多次中值抽取的双边滤波方法,该方法兼顾了空间邻域的相关性和像素强度的相似性,通过伪中值滤波选取强度滤波器的参考像素值,在平滑高斯噪声和椒盐噪声的同时更好地保护了边缘,与针对某一类特定噪声设计的传统滤波方法相比,该方法能够处理混有混合噪声(高斯噪声和椒盐噪声)的图像,并能够得到很好的滤波效果。
同时,本文分析了几种经典的边缘检测算子,用迭代的双边滤波方法代替Canny算子中的高斯滤波过程或自适应滤波过程,在一定程度上避免了滤波过程给边缘带来的模糊,得到了更好的边缘检测结果。
Hough变换作为图形目标检测的有效方法,能够检测直线、圆、椭圆和抛物线等众多解析图形,广义Hough变换对该方法做了一些推广,不再受图形解析表达式的限制,通过预先设置的查找表,能够检测任何图形目标。
文中对这些方法都做了介绍,并对这些方法做了仿真。
由于受到图像空间和参数空间离散化的影响,以及Hough变换自身的计算过使得传统Hough变换方法也有一些局限性,比如在高强度噪声下检测的结果不佳,计算量大,存储资源需求大等。
文中分析了传统Hough变换的投票过程,指出传统方法对参数单元进行1值累加是不合理的,并且传统方法没有区分图像中的噪声点和直线上的点,介于此,提出了基于直线连接度量的Hough变换,既考虑了图像的全局信息,也考虑了图像中像点邻域的局部信息,使得参数空间中的峰值不再受到噪声的影响,同时也避免了图像中具有线性关系的特征点投票带来的虚假峰值。
通过对传统Hough变换定义方式的修改,提出了基于模板匹配的Hough变换检测方法,在该方法中,每一个参数单元都确定了图像空间中的一个模板,通过该模板主动搜索图像空间中符合条件的特征点,特征点的个数作为参数单元的值,并记录图像中线段的端点坐标,完成图像中线段的检测与定位,能够节省大量的存储资源。
关键词:
特征提取;Hough变换
Hough变化检测直线
Hough变换的基本思想是利用点—线的对偶性,即图像空间共线的点对应在参数空间里相交的线,反过来,在参数空间中交与同一个点的所有直线在图像空间里都有贡献的点与之对应。
在图像空间X—Y中,所有共线的点(x,y)都可以用直线方程描述为:
(3.1)
其中m为直线的斜率,c为截距,同时式(3.1)又可以改写为:
(3.2)
上式可以看做是参数空间C—M中的一条直线方程,其中直线的斜率为x,截距为y。
比较式(3.1)和式(3.2),可以看出,图像空间中的一点(x,y)对应参数空间中的一条直线,而图像空间中的一条直线又是由参数空间中的一个点(m,c)来决定的。
Hough变换的基本思想就是将上述两式看作时图像空间中的点和参数空间中的点的共同的约束条件,兵由此定义一个从图像空间到参数空间的一对映射图3—1体现了这种点—线之间的对偶关系。
图3—2(a)所示图像空间中位于同一直线的点,(b)所示是图像中直线上的点经式(3.2)映射到参数空间中的一簇直线,图像空间中的一条直线上的点经过hough变换后,对应的参数空间中的直线相较于一点,这一点是确定的,确定该点在参数空间中的位置皆可以知道图像中直线的参数。
Hough变换吧在图像空间中的直线检测问题转换到参数空间里对点的检测问题,通过在参数空间里进行简单的累加统计完成检测任务。
(a)图像空间中的单点(b)参数空间中的直线
图3一1图像空间中的点与参数空间中的直线对偶示意图
(a)图像空间中位于同一直线上的点(b)参数空间中的直线
图3一2图像空间中的直线与参数空间中的点对偶示意图
图3一3参数空间中的累加数组
在具体的计算过程中,需要将参数空间M一C离散化为二维的累加数组,设这个数组为(m,c),如图3一3所示,同时设[和分别为斜率和截距的取值范围。
开始时置数组A全为零,然后对每一个图像空间中的给定边缘点,
让m取遍内所有可能的值,并根据式(3.2)算出对应的。
再根据m和c的值(设都已经取整)据m和。
的值(设都已经取整)对数组元素A(m,c)=A(m,c)+I。
累加结束后,通过检测数组A中局部峰值点的位置来确定参数m和c的值。
如果直线的斜率无限大(比如x=a形式的直线),采用式(3.2)是无法完成检测的,为了能够正确识别和检测任意方向的和任意位置的直线,可以可以用Duda和Hart提出的直线极坐标方程来替代(3.1)式:
(3.1)
如图3一4(a)所示,图像空间中一条直线l,为l过原点的垂线与x轴正方向的夹角,p为原点到z的距离。
这时,参数空间就变为p一空间,X一Y空间中的任意一条直线对应了p一空间内的一个点,由式(3.3)可知,X一Y空间内的一点对应了p一空间中的一条正弦曲线。
如果有一组位于由参数p和决定的直线上的点,则每个点对应了参数空间中的一条正弦曲线,所有这些曲线必交于点,如图3一4所示。
(a)图像中位于同一直线上的点(b)参数空间中交于一点的正弦曲线
图3一4极坐标方程下的点一线对偶示意图
同样,在计算的过程中需要对参数空间进行离散化,每个单元的中心点坐标为:
(3.4)
其中,为参数分割段数:
,是参数的分割段数,是为图像中的点距原点的距离最大值。
具体的计算过程与上文相似,将参数相应的置换即可。
利用Hough变换在图像中检测直线的基本策略就是:
由图像空间中的边缘点去计算参数空间中的参考点的可能轨迹,并在一个累加器中给出计算的参考点计数,最后选出峰值。
Hough变换实质上是一种投票机制,对参数空间中的离散点进行投票,若投票值超过某一门限值,则认为有足够多的图像点位于该参数点所决定的直线上。
这种方法受噪声和直线出现间断的影响较小。
3.5实验结果与分析
标准Hough变换广泛用于直线的检测,在同一图像上具有多条直线和噪声干扰的情况下,正确识别直线需要注意一下几点:
1)参数空间中只有当计数器的值为局部峰值时,该点的坐标才有可能作为直线的参数,累加数组其他各点的坐标不能作为直线的参数看待;
2)参数0的取值范围为[0o,]8口’夕或[一夕0o,夕口,,变换过程中0的离散间隔决定了识别的精度,但e的步长不能过小,这样会引起参数空间的峰值扩散,也会增大Hough变换的计算量;
3)对于宽度大于1个像素点的直线,正确地识别不仅需要对p的取值,而且需要对夕的取值加以限制[3811391。
在本节中我们只考虑对1个像素宽度的直线进行
Hough变换检测
如图3一9所示,其中(“)图含有6条直线,并且每条直线都有间断,为了分清每条直线在经过Hough变换后对参数空间单元的累加值,我们对每条直线都加以标记,直线1,2是图中较长的两条直线,直线a,b,c,d可以看作是图像中矩形的四条边。
(b)图是(a)图加入了5%的椒盐噪声,可以通过对(a)图和(b)图的Hough变换检测结果进行比较来考察Hough变换的抗噪声能力。
图(c)、(d)分别是图(a)、(b)经Hough变换后参数空间中累加单元的累加值效果
图,图(c)中的标号与图(a)中的标号是一一对应的,可以看出图像中直线段的长度决定了对应累加单元的累加值的大小,图像中的孤立点噪声增大了参数单元中的累加值,但没有改变局部峰值点的位置。
图(。
)、(f)是通过寻找参数空间中局部峰值点的位置画出来的,分别是(a)图和(b)图的Hough变换检测结果,这两个图基本上没有什么差别。
因此,Hough变换对图像中的直线出现间断或是噪声具有很强的抵抗能力,但如果我们将图(a)看成是由多条线段组成的图,而且需要检测到这些线段,标准Hough变换是无法完成的,因为此时参数空间单元的信息只包括:
线段所处直线的参数以及共线点的个数,而无法确定该线段的
起始点的位置。
在图3一9(c)中,a、b、c、d四个峰值点分别对应了图像中矩形的四条边,这四个峰值点满足下面的关系:
l)它们是成对出现的:
第一对是b和d,设他们对应的边的倾斜角度为;
第二对是a和c,设他们对应的边的倾斜角度是;
2)两对峰值点在“轴上间隔90。
,即;
3)因为矩形的对边的长度相等,则同一对中的两个峰值的累加值是相同的,即。
,为参数单元中累加值,代表边的长度;
4)同一峰值对中两点间在轴上的距离值等于矩形的边长,即,
。
我们可以在参数空间中寻找符合上述4个关系的峰值点,从而检测图像中的矩形轮廓。
(a)无噪声图像(b)加噪后图像
(c)图(a)经Hough变换后参数空间(d)图(b)经Hough变换后的参数空间
(e)图(a)的Hough变换检测结果(f)图(b)的Hough变换检测结果
图3一9Hough变换检测直线
图3一10(a)是一副含有单个圆轮廓的合成图像,其中轮廓的边缘厚度为一个像素,(b)是(a)经Hough变换后在参数空间中的累加值图,在变换的过程中,圆的半径是已知的,此时参数空间的大小与图像空间相同,峰值点所处的位置即为图像中圆的圆心位置。
图(c)中加入5%的椒盐噪声,并且圆轮廓边缘出现了间断,图(d)图(c)经Hough变换后的参数空间中累加单元的示意图,受噪声的干扰,非峰值点的区域不如图(b)平坦。
改进的Hough变换直线检测方法
Hough变换作为图像目标检测的有效方法,具有很强的抗干扰能力。
如果检测的曲线上有小的扰动或是间断,或者图像中存在背景噪声,Hough变换算都能够准确地检测出目标曲线。
因此,该方法在图像处理中得到了越来越广泛应用。
但Hough变换将图像中的每一个边缘点映射为参数空间中相应的曲线,算量非常大,且需要预存的参数空间,浪费大量的存储资源。
特别对于直线的Hough变换检测,由于图像空间和参数空间的离散化以及受到噪声的影响,容易引起数空间中峰值的扩散,甚至会出现伪峰值,给检测带来了困难,限制了它在很多方面的应用。
4.1基于直线连接度量的Hough变换
4.1.1传统Hough变换的局限
Duda提出的Hough变换检测直线的极坐标映射关系可以表示为:
(4.1)
其中表示直线与图像空间中原点的距离,表示直线法线与x轴的夹角。
图4一1特征点(x,y)力映射为参数空间的一条曲线
曲线上的每一点确定穿过(x,y)的直线
可以看出,x一y平面上的一点映射到。
平面上是一条正弦曲线。
参数空间的离散化单元为,给定图像空间中特征点(x,y),遍历中的离散值计算得到,然后把表示的累加单元的值加1。
这一方法隐含了假设通过(x,y)点的直线的角度是在上等概率分布的,如图4一1所示,(a)中的实线表示由参数空间中的值得到的候选直线。
可以看出,此时对0的离散个数决定了可能通过点(x,y)的直线条数,这与现实生活中只有有限条直线相交于同一点是矛盾的。
传统Hough变换依据图像的全局统计特性检测直线,它对符合条件的所有参
数单元等值投票累加,容易检测出虚假直线。
实际上,如果图像中一点在一条直
线上,则在该点的周围也将有其他点在这条直线上。
图4一2表示图像空间中的四个特征点A、B、C、D,其中A是待分析的参考点,我们发现,通过参考点A的直线只有两条AB或ACD,因此经Hough变换后,把符合条件的所有上的离散参数单元都等值投票累加是不合理的。
由于B点距A点的距离较C、D点小,在图像空间中AB作为经过A点直线的可能