Hough变换原理要点
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
摘要
人类对物体的识别最主要是对物体外形的识别,图像的形状检测在图像处理以及模式识别中是十分重要的。Hough变换作为目标形状特征提取的有效方法得到了广泛的应用。但Hough变换算法主要应用于二值图像(即边缘图像),因此在对灰度图像进行Hough变换前需要对其进行预处理(包括图像的滤波与边缘检测)。图像预处理作为Hough变换目标检测过程中重要的前期工作,其结果将直接影响检测结果的好坏。文中介绍了图像中常见的两种噪声,对图像的空间域噪声滤波做了一些研究,分析了高斯滤波与中值滤波的局限性,在双边滤波的基础上提出了一种基于多次中值抽取的双边滤波方法,该方法兼顾了空间邻域的相关性和像素强度的相似性,通过伪中值滤波选取强度滤波器的参考像素值,在平滑高斯噪声和椒盐噪声的同时更好地保护了边缘,与针对某一类特定噪声设计的传统滤波方法相比,该方法能够处理混有混合噪声(高斯噪声和椒盐噪声)的图像,并能够得到很好的滤波效果。同时,本文分析了几种经典的边缘检测算子,用迭代的双边滤波方法代替Canny算子中的高斯滤波过程或自适应滤波过程,在一定程度上避免了滤波过程给边缘带来的模糊,得到了更好的边缘检测结果。Hough变换作为图形目标检测的有效方法,能够检测直线、圆、椭圆和抛物线等众多解析图形,广义Hough变换对该方法做了一些推广,不
再受图形解析表达式的限制,通过预先设置的查找表,能够检测任何图形目标。文中对这些方法都做了介绍,并对这些方法做了仿真。由于受到图像空间和参数空间离散化的影响,以及Hough变换自身的计算过使得传统Hough变换方法也有一些局限性,比如在高强度噪声下检测的结果不佳,计算量大,存储资源需求大等。文中分析了传统Hough变换的投票过程,指出传统方法对参数单元进行1值累加是不合理的,并且传统方法没有区分图像中的噪声点和直线上的点,介于此,提出了基于直线连接度量的Hough变换,既考虑了图像的全局信息,也考虑了图像中像点邻域的局部信息,使得参数空间中的峰值不再受到噪声的影响,同时也避免了图像中具有线性关系的特征点投票带来的虚假峰值。通过对传统Hough变换定义方式的修改,提出了基于模板匹配的Hough变换检测方法,在该方法中,每一个参数单元都确定了图像空间中的一个模板,通过该模板主动搜索图像空间中符合条件的特征点,特征点的个数作为参数单元的值,并记录图像中线段的端点坐标,完成图像中线段的检测与定位,能够节省大量的存储资源。
关键词:特征提取;Hough变换
Hough变化检测直线
Hough变换的基本思想是利用点—线的对偶性,即图像空间共线的点对应在参数空间里相交的线,反过来,在参
数空间中交与同一个点的所有直线在图像空间里都有贡献的点与之对应。
在图像空间X—Y中,所有共线的点(x,y)都可以用直线方程描述为:
=
y+
c
mc
(3.1)
其中m为直线的斜率,c为截距,同时式(3.1)又可以改写为:
c+
=
-
xm
y
(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所示,同时设[[]max min ,m m 和[]max min ,c c 分别为斜率和截距的取值范围。开
始时置数组A 全为零,然后对每一个图像空间中的给定边缘点,
让m 取遍[]max min ,m m 内所有可能的值,并根据式 (3.2)算出对应
的c 。再根据m 和c 的值(设都已经取整)据m 和。的值(设都已经取整)对数组元素A(m ,c)=A(m ,c)+I 。累加结束后,通过检测数组A 中局部峰值点的位置来确定参数m 和c 的值。 如果直线的斜率无限大(比如x=a 形式的直线),采用式(3.2)是无法完成检测的,为了能够正确识别和检测任意方向的和任意位置的直线,可以可以用Duda 和Hart 提出的直线极坐标方程来替代 (3.1)式:
θθρsin cos y x += (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极坐标方程下的点一线对偶示意图
同样,在计算的过程中需要对参数空间进行离散化,每个单元的中心点坐标为:
⎪⎩⎪⎨⎧=∆-==∆-=),2,1()21(),2,1()21(ρθρρθθN n n N n n n n
(3.4)
其中θπθN /=∆,θN 为参数θ分割段数:ρπρN /=∆,是参数ρ的