APP下载

基于Hough变换的平行直线检测改进算法研究

2010-07-25

网络安全与数据管理 2010年17期
关键词:平行线斜率灰度

吕 萌

(燕山大学 信息科学与工程学院,河北 秦皇岛 066004)

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

图1 平行线检测方法流程图

1 算法原理

1.1 图像二值化处理

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

1.2 边缘检测

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

Sobel算子利用图2中的掩模以数字化近似一阶导数值 Gx和 Gy[1]。 即 :

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

图2 Sobel边缘检测器掩模及实现的一阶导数

1.3 经典Hough变换基本原理

经典Hough变换是一种线描述方法,将笛卡儿坐标空间中的线变换为极坐标空间中的点。如图3所示,如x、y 是像素的直角坐标, 用 ρ1、ρ2直线 l1、l2距原点的法线距离,θ为l1、l2的法线与 X轴的夹角。经过如下坐标变换公式[2]:直线对应极坐标空间中能找到某个极大值点 (ρ,θ)[3-4]。如图4所示,图 3中的 l1、l2上的 A、B两点对应于图 4中的点(ρ1,θ)和(ρ2,θ)。

图3 笛卡尔坐标空间中的平行线 l1、l2

图4 极坐标空间中的θ值相等的点

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所示。

表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.

猜你喜欢

平行线斜率灰度
采用改进导重法的拓扑结构灰度单元过滤技术
平行线
Bp-MRI灰度直方图在鉴别移行带前列腺癌与良性前列腺增生中的应用价值
物理图像斜率的变化探讨
基于最大加权投影求解的彩色图像灰度化对比度保留算法
添加平行线 求角真方便
“平行线及其判定”检测题
不可思议的平行线
求斜率型分式的取值范围
基于灰度线性建模的亚像素图像抖动量计算