《电子技术应用》
您所在的位置:首页 > 其他 > 设计应用 > 基于Hough变换的平行直线检测改进算法研究
基于Hough变换的平行直线检测改进算法研究
来源:微型机与应用2010年第17期
吕 萌
(燕山大学 信息科学与工程学院,河北 秦皇岛 066004)
摘要: 根据经典Hough变换检测空间直线的原理,提出了一种基于Hough变换的平行直线检测改进算法,将采集到的图像进行二值化处理,再使用Sobel算子对该二值化图像进行边缘检测,对边缘检测得到的图像进行Hough变换和峰值点检测,由峰值点得到直线段图像,最后使用本文提出的改进算法计算出所有直线段的斜率,利用斜率相等来判定平行直线。通过对比实验证明,该算法能得到更高的精度,并缩短了运行时间。
Abstract:
Key words :

摘  要: 根据经典Hough变换检测空间直线的原理,提出了一种基于Hough变换的平行直线检测改进算法,将采集到的图像进行二值化处理,再使用Sobel算子对该二值化图像进行边缘检测,对边缘检测得到的图像进行Hough变换和峰值点检测,由峰值点得到直线段图像,最后使用本文提出的改进算法计算出所有直线段的斜率,利用斜率相等来判定平行直线。通过对比实验证明,该算法能得到更高的精度,并缩短了运行时间。
关键词: Hough变换;平行直线检测;阈值

    在遥感图像中,对江河上桥梁目标的识别具有重要意义。由于桥梁的最突出特征在于桥体的平行直线,所以对平行直线的实时检测十分重要。经典的Hough变换是一种常用的检测直线的方法,它具有可对目标进行有效检测与识别、可并行实现、对噪声不敏感等优点,但是由于其自身的设计缺陷,无法完成对平行直线的实时性检测。本文在经典Hough变换的基础上,提出了一种平行直线改进算法,如图1所示。经试验证明,该算法能准确地检测识别出平行直线,且实时性较好。

1 算法原理
1.1 图像二值化处理

    将灰度图像转换为黑白的二值化图像是图像数字化处理的重要环节之一。目前常用的算法是采用阈值法对图像进行二值化处理,即通过设定某个T阈值,并以该阈值为门限,把灰度图像转换成二灰度级的黑白图像。在处理过程中,不同的样品图像根据灰度分布峰值的不同,按图像特征的相应要求,可以选择不同的二值化转换阈值T。对于256级的灰度图像,将图像上位于n处的灰度值记为Tn(0≤Tn≤255),则设定二值化阈值为Tn。则:

由式(1)即得到以二值化数据Tn标定的二值化图像fn,从而完成了图像的二值化处理。
1.2 边缘检测
    经典Hough变换使用Canny算子进行边缘检测。虽然Canny算子能较好地检测出图像中的各个边缘信息,但是在处理之后的图像中,显示了许多无用的边缘信息,从而导致处理时间过长,失去了实时性意义。本文算法在对图像二值化处理的基础上,采用Sobel算子检测图像。

    其边缘检测的实现过程是:使用图2(a)的掩模对图像fn进行滤波,再使用图2(b)掩模对fn滤波,然后计算每个滤波后的图像中的像素值的平方,并将两幅图像的结果相加,最后计算相加结果的平方根。

    Hough变换先将(ρ,θ量化,并相应设置一个二维累加器矩阵。累加器中的每个元素描述了(ρ,θ)平面上的一个离散点。将图像中的每一个特征点代入θ的各个量化值,计算出对应的ρ,计算所得值(经量化)落在某个小格内,即对参数空间累加器进行加1,使得图像空间中直线的提取问题转化为累加器计数求极大值问题。
1.4 改进的平行线检测方法
    无论是经典的Hough变换,还是改进的Hough变换,都要经过变换空间来检测。对于直线而言,只要这一组直线是平行线,都有一个显著的特征:即两条直线的斜率是相等的,基于这一特征,设计了以下的算法:
    (1)为了得到效果更好的边缘图像,首先要对图像进行预处理,得到二值化图像。
    (2)再根据二值化图像,设定合适的阈值T,对其进行边缘检测。
    (3)运用Hough变换,将笛卡尔坐标空间转换成极坐标空间(ρ,θ),找出若干峰值点,检测出图像中的直线。
    (4)由于在采集时图像会受到光照、大气紊流等自然因素的影响,当一幅遥感图像中的所有直线被检测出来后,一条直线会被分割成若干个小段。为了复原这种直线,可以设定阈值T2,计算同一直线上相邻两条直线段的距离,如果这个值小于阈值T2,将两道路段进行连接,否则不作处理。
    (5)检测出各个直线段的起止点。
    (6)在复原所有的直线段后,根据桥梁的特点,设定大阈值T3,用来检测出较长的直线段(即桥体的其中一边);并利用直线段端点坐标值,计算所有有用直线段的斜率K。即:
   
    (7)当其中一条直线段的斜率与已经检测出来的直线段(桥体其中一边)的斜率之间的误差≤0.1%时,即检测出了桥体的另一边,从而完成了实时检测和识别桥梁。
2 实验
    本文选用某河流上的某桥梁作为实验对象。两种算法在相同条件下运行,硬件环境:CPU为Pentium○R4,主频为3.2 GHz,内存为1 GB;软件环境为Matlab 7.1版本,操作系统为中文Windows XP,扫描图像像素为449×617。图5(a)为运用经典Hough变换,在极坐标空间下的峰值点检测效果图,图5(b)为使用本文改进算法下的峰值点检测效果图。图6(a)为经典Hough变换算法下的检测结果,图6(b)为本文改进算法检测的结果,图6的阈值T2为35像素,大阈值T3为300像素。

    从多次的实验结果可知,经典Hough变换所检测的结果正确率不高,且使用时间较长,不能完成实时检测和识别,也不能确定所检测出的直线是否为平行线。利用本文算法所检测出的直线,经过斜率计算,两直线的斜率差小于0.1%,可以视为斜率相等,故能判定这两条直线为平行线,而且正确率与所用时间都优于经典Hough变换,如表1所示。

    本文基于斜率判断的Hough变换算法不但在时间上要比经典的Hough变换快,而且正确率要比经典Hough变换高,对于一般实时性目标的检测和识别均能取得较高的精度控制。但本文的算法在计算和存储空间上有很大的可压缩性,所以还有很多方面需要改进,尤其是对3个阈值的选取上,对算法的效率及最后的结果都有重要的影响。
参考文献
[1] GONZALEZ R C, WOODS R E, EDDINS S L. Digital image processing using MATLAB[M]. Beijing: Publishing House of Electronics Industry, 2005.
[2] 吕健刚,韦春桃.基于Hough变换的高分辨率遥感影像城市直线道路提取[J].遥感应用,2009(3):15-16.
[3] FERNANDES L A F, OLIVEIRA M M. Real-time line detection through an improved Hough transform voting scheme[J]. Pattern Recognition, 2008,41:299-314.
[4] MOCHIZUKI Y, TORII A, IMIYA A. N-point Hough transform for line detection[J]. Communication. Image R, 2009,20:242-253.

此内容为AET网站原创,未经授权禁止转载。