基于MATLAB的路面裂缝检测

基于MATLAB的路面裂缝检测

第一章 绪论

1.1引言

本章介绍本论文的研究目的与意义、国内外研究现状,论文的研究内容和组织结构。其中:

1.2节介绍本文的立题依据与研究意义。

1.3节综述了国内外关于路面裂缝检测的研究现状和进展。

1.4节提出本文的研究目标、研究内容、研究方法及拟解决的关键问题。

1.5节简述了本文的组织结构安排。

1.2 研究的背景与意义

目前,我国高等级公路的建设取得空前发展,特别是在国家《公路、水路交通“十一五”发展规划》的推动下,截至2011年底,全国高速公路通车总里程已达8.}万公里,二级以上公路达到4万公里。随着公路的建成通车,路面养护与管理已成为保障道路服务水平的关键,公路路面状况的基础数据调查迫切需要先进的技术和科学的方法作为支撑。《国家中长期科学和技术发展规划纲要》将“交通运输基础设施建设与养护技术及装备”作为重点领域及其优先主题;《公路水路交通“十一五”科技发展规划》将“道路预防性养护与快速维修技术、无损检测技术、多功能养护设备研究开发”作为重大专题攻关项目。在此背景下,公路路面养护自动化的研究也得到越来越多的重视。

在公路养护管理中,路面破损状况指数(PCI)是决策养护方案的最重要的数据。而路面裂缝类病害作为是路面破损检测的重要内容,其自动化检测一直是公路路面破损检测的热点和难点。路面裂缝的传统检测方式是定期的人工检测,由于人工检测效率低、主观性大、安全性差等,它无法满足路面破损快速检测的要求。随着科技的进步,图像检测技术得到了快速的发展,由于其具有检测速度快、测量准确、自动化程度高、获取信息丰富等特点,已经广泛应用于工业在线表面质量检测等领域。基于影像的检测手段已逐步成为路面裂缝检测的重要手段,然而由于路面裂缝具有细小不连续、对比度低、分叉且不规则等特点,使得传统的线状目标提取与识别算法不能满足要求。目前的商业化系统仍需人工交互来实现从图像中提取路面裂缝,其工作内容枯燥,工作量巨大,因此研发全自动的路面裂缝识别方法具有重要的意义。

传统的基于闽值化、边缘检测、小波变换等的裂缝自动检测算法假设路面裂缝在路面影像中具有较高的对比度和较好的连续性,但这种假设在工程实践中往往不成立。由于受路面阴影、裂缝退化等的影响,一部分裂缝相对于路面背景具有极低的信噪比,造成传统的裂缝检测算法失效。因此,本文专门针对低信噪比的路面裂缝的增强与提取进行研究,对提高裂缝检测的自动化水平具有重要意义。

第二章 数字图像预处理

2.1 引言

图像预处理是相对于图像识别、图像理解而言的一种前期处理。不论采用何种装置,输入的图像往往不能令人满意。例如,从美学的角度会感到图像中物体的轮廓过于鲜明而显得不协调;按检测对象物大小和形状的要求看,图像的边缘过于模糊;在相当满意的一幅图像上会发现多了一些不知来源的黑点或白点;图像的失真、变形等。总之,输入的图像在视觉效果和识别方便性等方面可能存在诸多问题,这类问题不妨统称为“质量”问题。

改善图像质量的处理称为图像预处理,主要是指按需要进行适当的变换突出某些有用的信息,去除或削弱无用信息,如改变图像对比度,去除噪声或强调边缘的处理等。由于我们拍摄的裂缝图片大多都存在噪声等各种问题,直接进行提取处理效果不理想。所以我们首先将其进行预处理,以使实验效果更理想。预处理的基本方法有:图像的频域特性、直方图变换、灰度变换、图像平滑、图像锐化、伪彩色和假彩色处理等。本章将用部分方法对图像进行处理。

2.2 图像灰度化

一般摄像头得到的裂缝图像是24位真彩色图,需转换成灰度图,一方而便于后续的更快速图像处理,另一方而也是对处理多种颜色路面裂缝进行了统一。而且后续的一些处理方法也要求图像是灰度图,所以我们首先对裂缝图像进行灰度化处理。

灰度化可以采用现行标准的平均值法。在RGB模型中,如果R=G=B时,则彩色表示一种灰度颜色,其中R=G=B的值叫灰度值,因此,灰度图像每个像素只需一个字节存放灰度值(又称强度值、亮度值),灰度范围为0-255。一般有以下四种方法对彩色图像进行灰度化:

1.分量法

将彩色图像中的三分量的亮度作为三个灰度图像的灰度值,可根据应用需要选取一种灰度图像。

f1(i,j)=R(i,j);f2(i,j)=G(i,j);f3(i,j)=B(i,j) 2-1

其中fk(i,j)(k=1,2,3)为转换后的灰度图像在(i,j)处的灰度值。

2.最大值法

将彩色图像中的三分量亮度的最大值作为灰度图的灰度值。

f(i,j)=max(R(i,j),G(i,j),B(i,j)) 2-2

3.平均值法

将彩色图像中的三分量亮度求平均得到一个灰度值。

f(i,j)=(R(i,j)+G(i,j)+B(i,j)) /3 2-3

4.加权平均法

根据重要性及其它指标,将三个分量以不同的权值进行加权平均。由于人眼对绿色的敏感最高,对蓝色敏感最低,因此,按下式对RGB三分量进行加权平均能得到较合理的灰度图像。

f(i,j)=0.30R(i,j)+0.59G(i,j)+0.11B(i,j)) 2-4

在这里,我们只用加权平均法对裂缝图像进行处理,其主要代码如下:

function J = rgb2gray2(I)

J = 0.299 * I(:,:,1) + 0.587 * I(:,:,2) + 0.114 * I(:,:,3);

结果如图:

灰度后图片:


v2-5a3e4d4b4423e0aa2aebee4dfd3ea7e8_b.jpg


图2 灰度后

由于我们后面的各种处理包括预处理都需要把图像转为灰度图像,所以对图像进行灰度处理还是很有必要的。

2.3 图像去噪

现实中的数字图像在数字化和传输过程中常受到成像设备与外部环境噪声干扰等影响,称为含噪图像或噪声图像。减少数字图像中噪声的过程称为图像去噪。 实际图像中,多少都会存在一些噪声,而使图像模糊,从而使实验结果不是那么直观,影响我们判断。所以本节我们针对裂缝图像进行去噪。

2.3.1 噪声特性

噪声是图象干扰的重要原因。一幅图象在实际应用中可能存在各种各样的噪声,这些噪声可能在传输中产生,也可能在量化等处理中产生。在对这个含噪模型进行研究之前,我们有必要了解一下噪声的一些特性,经常影响图像质量的噪声源可分为三类。人们对其生成原因及相应的模型作了大量研究[3]:

1、电子噪声。在阻性器件中由于电子随机热运动而造成的电子噪声是三种模型中最简单的,一般常用零均值高斯白噪声作为其模型,它可用其标准差来完全表征。

2、光电子噪声。由光的统计本质和图像传感器中光电转换过程引起,在弱光照的情况下常用具有泊松分布的随机变量作为光电噪声的模型,在光照较强时,泊松分布趋向于更易描述的高斯分布。

3、感光片颗粒噪声。由于曝光过程中感光颗粒只有部分被曝光,而其余部分则未曝光,底片的密度变化就由曝光后的颗粒密集程度变化所决定,而算曝光颗粒的分布呈现一种随机性。在大多数情况下,颗粒噪声可用高斯白噪声作为有效模型。

通过以上分析可以看出,绝大多数的常见图像噪声都可用均值为零,方差不同的高斯白噪声作为其模型,因而为了简便和一般化,我们采用零均值的高斯白噪声作为噪声源。

2.3.2 去噪方法

对随时间变化的信号,通常采用两种最基本的描述形式,即时域和频域。时域描述信号强度随时间的变化,频域描述在一定时间范围内信号的频率分布。对应的图像的去噪处理[4]方法基本上可分为空间域法和变换域法两大类。前者即是在原图像上直接进行数据运算,对像素的灰度值进行处理。变换域法是在图像的变换域上进行处理,对变换后的系数进行相应的处理,然后进行反变换达到图像去噪的目的。

(1)空域滤波

1 均值滤波

邻域平均法是一种局部空间域处理的算法。设一幅图像f(x,y)为N×N的阵列,处理后的图像为g(x,y),它的每个像素的灰度级由包含(x,y)领域的几个像素的灰度级的平均值所决定,即用下式得到处理后的图像:

v2-2549d6627cda5fe6c6a44a2d8309c906_b.jpg


式中x,y=0,1,2,....,N-1;s是以(x,y)点为中心的邻域的集合,M是s内坐标总数。图像邻域平均法的处理效果与所用的邻域半径有关。半径愈大,则图像模糊程度也愈大。另外,图像邻域平均法算法简单,计算速度快,但它的主要缺点是在降低噪声的同时使图像产生模糊,特别在边缘和细节处,邻域越大,模越厉害。

2 中值滤波

中值滤波是一种非线性滤波,由于它在实际运算过程中并不需要图像的统计特性,所以比较方便。中值滤波首先是被应用在一维信号处理技术中,后来被二维图像信号处理技术所应用。在一定的条件下,可以克服线性滤波器所带来的图像细节模糊,而且对滤除脉冲干扰及图像扫描噪声最为有效。但是对一些细节多,特别是点、线、尖顶细节多的图像不宜采用中值滤波的方法。

中值滤波的基本原理是把数字图像或数字序列中一点的值用该点的一个邻域中各点值的中值代替。

设有一个一维序列,取窗口长度为m(m为奇数),对此序列进行中值滤波,就是从输入序列中相继抽出m个数,窗口的中心位置,v=(m-1)/2,,再将这m个点按其数值大小排列,取其序号为正中间的那作为出。用数学公式表示为:

例如:有一个序列为{0,3,4,0,7},则中值滤波为重新排序后的序列{0,0,3,4,7}中间的值为3。此例若用平均滤波,窗口也是取5,那么平均滤波输出为(0+3+4+0+7)/5=2.8。因此平均滤波的一般输出为:

对于二位序列{Xij}进行中值滤波时,滤波窗口也是二维的,但这种二位窗口可以有各种不同的形状,如线状、方形、圆形、十字形、圆环形等。二维数据的中值滤波可以表示为:


在实际使用窗口时,窗口的尺寸一般先用3×3再取5×5逐渐增大,直到其滤波效果满意为止。对于有缓变的较长轮廓线物体的图像,采用方形或圆形窗口为宜,对于包含尖顶角物体的图像,适宜用十字形窗口。使用二维中值滤波最值得注意的是保持图像中有效的细线状物体。与平均滤波器相比,中值滤波器从总体上来说,能够较好地保留原图像中的跃变部分。

  1. 频域低通滤波法

在分析图像信号的频率特性时,一幅图像的边缘,跳跃部分以及颗粒声代表图像信号的高频分量,而大面积的背景区则代表图像信号的低频分量。用滤波的方法滤除其高频部分就能去掉噪声使图像得到平滑由卷积定理可知:

式中,F(u,v)是含噪声图像的傅里叶变换,G(u,v)是平滑后图像的傅里叶变换,H(u,v)是低通滤波器传递函数。利用H(u,v)使F(u,v)的高频分量得到衰减,得到G(u,v)后再经过反变换就得到所希望的图像g(x,y)了。


1 小波去噪

近年来,小波理论得了非常迅速的发展,由于其具备良好的时频特性和多分辨率特性,小波理论成功地在许多领域得到了广泛的应用。现在小波分析已经渗透到自然科学、应用科学、社会科学等领域。在图像去噪领域中,应用小波理论进行图像去噪受到许多专家学者的重视,并取得了非常好的效果。

小波去噪的方法有多种,如利用小波分解与重构的方法滤波降噪、利用小波变换模极大值的方法去噪、利用信号小波变换后空域相关性进行信噪分离、非线性小波阈值方法去噪、平移不变量小波去噪法,以及多小波去噪等等。归结起来主要有三类:模极大值检测法、阈值去噪法和屏蔽(相关)去噪法。其中最常用的就是阈值法去噪。

小波阈值去噪的基本思路是:

(1)先对含噪信号f(k)做小波变换,得到一组小波系数Wj,k

(2)通过对Wj,k进行阈值处理,得到估计系数

v2-48c417b06de629790fc07353f72616a8_b.jpg

,使得

v2-1356ef594d75e947e094c7c466eb2202_b.jpg

Wj,k两者的差值尽可能小;

(3)利用

v2-1356ef594d75e947e094c7c466eb2202_b.jpg

进行小波重构,得到估计信号f(k)即为去噪后的信号。

Donoho提出了一种非常简洁的方法对小波系数Wj,k进行估计。对f(k)连续做几次小波分解后,有空间分布不均匀信号s(k)各尺度上小波系数Wj,k在某些特定位置有较大的值,这些点对应于原始信号s(k)的奇变位置和重要信息,而其他大部分位置的Wj,k较小;对于白噪声n(k),它对应的小波系数Wj,k在每个尺度上的分不都是均匀的,并随尺度的增加,Wj,k系数的幅值减小。因此,通常的去噪办法是寻找一个合适的数λ作为阈值(门限),把低于λ的小波函数Wj,k(主要由信号n(k)引起),设为零,而对于高于λ的小波函数Wj,k(主要由信号s(k)引起),则予以保留或进行收缩,从而得到估计小波系数

v2-1356ef594d75e947e094c7c466eb2202_b.jpg

,它可理解为基本由信号s(k)引起的,然后对

v2-1356ef594d75e947e094c7c466eb2202_b.jpg

进行重构,就可以重构原始信号。

估计小波系数的方法如下,取:

v2-9af6728fea05fab7a39356f20f37ef7e_b.jpg

v2-08a3ae0037c1f00da040daeb4fbefb83_b.jpg

定义:

v2-1a817fb03c6d5e2284a56618034c90de_b.jpg

称之为硬阈值估计方法。一般软阈值估计定义为


v2-d899b585783d75ec467ea619f91a5613_b.jpg

2.3.3 实验结果

均值滤波也称为线性滤波,其采用的主要方法为邻域平均法。其基本原理是用均值替代原图像中的各个像素值,即对待处理的当前像素点(x,y),选择一个模板,该模板由其近邻的若干像素组成,求模板中所有像素的均值,再把该均值赋予当前像素点(x,y) ,作为处理后图像在该点上的灰度g(x,y) ,即

v2-498f4d7e70c1a237f312ed75fb49b489_b.jpg

,其中,s为模板,M为该模板中包含当前像素在内的像素总个数。

如下即分别为用均值滤波对加有高斯噪声、椒盐噪声的图像处理后的对比图:

v2-387da5f769ca67c2fd1e00c37a5f8226_b.jpg

v2-10b28383c64b91594a6ac9d658af4486_b.jpg


图3 图4

v2-3c23062e944b0fb6b50cd710785d3aa3_b.jpg

v2-919a295dd9d972e52efe48a826fde3b2_b.jpg


图5 图6

(1) 均值滤波

均值滤波也称为线性滤波,其采用的主要方法为邻域平均法。其基本原理是用均值替代原图像中的各个像素值,即对待处理的当前像素点(x,y),选择一个模板,该模板由其近邻的若干像素组成,求模板中所有像素的均值,再把该均值赋予当前像素点(x,y) ,作为处理后图像在该点上的灰度g(x,y) ,即

v2-498f4d7e70c1a237f312ed75fb49b489_b.jpg

,其中,s为模板,M为该模板中包含当前像素在内的像素总个数。

如下即分别为用均值滤波对加有高斯噪声、椒盐噪声的图像处理后的对比图:

v2-c04546ee3c4490fac7ab5965df51ec2c_b.jpg

v2-0c919181535e3dbce6ffb682dd95dd72_b.jpg


图 7 图 8

代码如下:

b = imread('123.jpg');

l=b(:,:,1)*0.299 + b(:,:,2)*0.587 + b(:,:,3)*0.114;

imshow(b)

J = imnoise(l,'salt & pepper',0.02);

k = imnoise(l,'gaussian',0,0.005);

K1= filter2(fspecial('average',3),J)/255;

subplot(121),imshow(K1)

title('3*3的椒盐噪声均值滤波')

K2= filter2(fspecial('average',7),k)/255;

subplot(122),imshow(K2)

title('3*3高斯噪声均值滤波')

(2) 中值滤波

中值滤波是基于排序统计理论的一种能有效抑制噪声的非线性信号处理技术。其实现原理如下:将某个像素邻域中的像素按灰度值进行排序,然后选择该序列的中间值作为输出的像素值,让周围像素灰度值的差比较大的像素改取与周围的像素值接近的值,从而可以消除孤立的噪声点。

其具体的操作是:首先确定一个以某个像素为中心点的领域,一般为方形领域(如3 * 3、5 * 5的矩形领域),然后将领域中的各个像素的灰度值进行排序。

假设其排序为:

v2-1211edf833312d291a8ca810106824dd_b.jpg

,


v2-a0a77c0a403ee91db3ee04a3fbc9c140_b.jpg



v2-afe618846efba8c48ff25de861d3623d_b.jpg


取排好序的序列的中间值作

v2-076ec29bc03963e5cfaa32a3df48280c_b.jpg

为中心点像素灰度的新值,这里的邻域通常被称为窗口。当窗口在图像中上下左右进行移动后,利用中值滤波算法可以很好地对图像进行平滑处理。

如下即分别为用中值滤波对加有高斯噪声、椒盐噪声的图像处理后的对比图:

v2-704d02bec1e121c9b630ab72eac97908_b.jpg

v2-86bf81ce9df74a4c344a505bdea7ba33_b.jpg


图 9 图 10

代码如下:

b = imread('123.jpg');

l=b(:,:,1)*0.299 + b(:,:,2)*0.587 + b(:,:,3)*0.114;

imshow(b)

J = imnoise(l,'salt & pepper',0.02);

k = imnoise(l,'gaussian',0,0.005);

K1 = medfilt2(J);

K2 = medfilt2(k);

subplot(1,2,1),imshow(K1)

title('椒盐噪声中值滤波处理')

subplot(1,2,2),imshow(K2)

title('高斯噪声中值滤波处理')

(3) 小波变换

小波变换是一种窗口大小固定但其形状可改变的时频局部化分析方法。小波变换利用非均匀的分辨率,即在低频段用高的频率分辨率和低的时间分辨率(宽的分析窗口);而在高频段利用低的频率分辨率和高的时间分辨率(窄的分析窗口),这样就能有效地从信号(如语言、图像等)中提取信息,较好地解决了时间和频率分辨率的矛盾。对于一副图像,我们关心的是它的低频分量,因为低频分量是保持信号特性的重要部分,高频分量则仅仅起到提供信号细节的作用,而且噪声也大多属于高频信息。这样,利用小波变换,噪声信息大多集中在次低频、次高频、以及高频子块中,特别是高频子块,几乎以噪声信息为主,为此,将高频子块置为零,对次低频和次高频子块进行一定的抑制,则可以达到一定的噪声去除效果。

如下即分别为用小波变换对加有高斯噪声、椒盐噪声的图像处理后的对比图:


v2-8180b06e0f28bfda61def5639dcba32e_b.jpg

v2-fb4be74d2ba93dab367d05870a5e4505_b.jpg





load sinsin

b = imread('123.jpg');

l=b(:,:,1)*0.299 + b(:,:,2)*0.587 + b(:,:,3)*0.114;

J = imnoise(l,'salt & pepper',0.02);

k = imnoise(l,'gaussian',0,0.005);

[thr,sorh,keepapp] = ddencmp('den','wv',J);

xd = wdencmp('gbl',J,'sym4',2,thr,sorh,keepapp);

subplot(221)

imshow(J,map)

title('加椒盐噪声')

subplot(222)

imshow(xd,map)

title('椒盐图像小波去噪')

[thr,sorh,keepapp] = ddencmp('den','wv',k);

xd = wdencmp('gbl',k,'sym4',2,thr,sorh,keepapp);

subplot(223)

imshow(k,map)

title('加高斯噪声')

subplot(224)

imshow(xd,map)

title('高斯图像小波去噪')




1 均值滤波器

采用邻域平均法的均值滤波器非常适用于去除通过扫描得到的图象中的颗粒噪声。领域平均法有力地抑制了噪声,同时也由于平均而引起了模糊现象,模糊程度与领域半径成正比。谐波均值滤波器对“盐”噪声效果更好,但是不适用于“胡椒”噪声。它善于处理像高斯噪声那样的其他噪声。逆谐波均值滤波器更适合于处理脉冲噪声,但它有个缺点,就是必须要知道噪声是暗噪声还是亮噪声,以便于选择合适的滤波器阶数符号,如果阶数的符号选择错了可能会引起灾难性的后果。

程序代码:

clc;clear;close all;

I=imread('裂缝.tif');

w2=fspecial('average',[5 5]); %% 先定义一个滤波器

H=imfilter(I,w2,'replicate'); %%让图像通过滤波器

imshow(I),title('原图');

figure(2),imshow(H),title('5*5均值滤波');


原图: 5*5均值滤波:


v2-25cfd6361589f764438791a7e9eba99f_b.jpg

v2-96d63dd967eebcf6d622524429929cd4_b.jpg


图3 原图 图4 5*5均值滤波

2).中值滤波器

它是一种常用的非线性平滑滤波器,其基本原理是把数字图像或数字序列中一点的值用该点的一个领域中各点值的中值代换其主要功能是让周围象素灰度值的差比较大的像素改取与周围的像素值接近的值,从而可以消除孤立的噪声点,所以中值滤波对于滤除图像的椒盐噪声非常有效。中值滤波器可以做到既去除噪声又能保护图像的边缘,从而获得较满意的复原效果,而且,在实际运算过程中不需要图象的统计特性,这也带来不少方便,但对一些细节多,特别是点、线、尖顶细节较多的图象不宜采用中值滤波的方法。

下面,我们用中值滤波的方法对图像进行中值滤波:

程序代码:

I1=imread('123.jpg');

I=rgb2gray(I1);

K2=medfilt2(I,[5,5]);

imshow(I1),title('原图');

figure(2),imshow(K2),title('5*5窗口中值滤波');

原图: 5*5中值滤波:


v2-aa6f84057524d121f18f7b60714d688e_b.jpg

v2-cf8ff7965e04bd79d614448c717204a2_b.jpg


图5 原图 图6 5*5中值滤波

3).小波去噪

这种方法保留了大部分包含信号的小波系数,因此可以较好地保持图象细节。小波分析进行图像去噪主要有3个步骤:(1)对图象信号进行小波分解。(2)对经过层次分解后的高频系数进行阈值量化。(3)利用二维小波重构图象信号。

下面是以二维小波分析用于图像去噪为例。对于二维图像信号的去噪方法同样适用于一维信号,尤其是对于几何图像更适合。二维模型可以表示为:

v2-061761f39b639446ef4a021e6fe318b4_b.jpg



v2-295d88ed50cd9954ee3783e30dce5119_b.jpg

2-7

其中,e是标准偏差不变的高斯白噪声。二维信号用二维小波分析的去噪步骤如下:

① 二维信号的小波分解。选择一个小波和小波凤姐的层次N,然后计算信号s到第N 层的分解。

②对高斯系当选进行阈值量化。对于从1到N的每一层,选择一个阈值,并对这一层的高频系数进行软阈值量化处理。

③二维小波的重构。根据小波分解的第N层的低频系数和经过修改的从第1层到第N层的各层高频系数计算二维信号的小波重构。

小波变换消除图像噪声的关键是如何选取阈值和阈值的量化。Matlab的去噪函数有ddendmp、whdencmp等,去噪程序如下:

(4).形态学噪声滤除器

将开启和闭合结合起来可用来滤除噪声,首先对有噪声图象进行开启操作,可选择结构要素矩阵比噪声的尺寸大,因而开启的结果是将背景上的噪声去除。最后是对前一步得到的图象进行闭合操作,将图象上的噪声去掉。根据此方法的特点可以知道,此方法适用的图像类型是图象中的对象尺寸都比较大,且没有细小的细节,对这种类型的图像除噪的效果会比较好。我们将在后面章节着重讲解。

(5).自适应维纳滤波器

它能根据图象的局部方差来调整滤波器的输出,局部方差越大,滤波器的平滑作用越强。它的最终目标是使恢复图像f^(x,y)与原始图像f(x,y)的均方误差e2=E[(f(x,y)-f^(x,y)2]最小。该方法的滤波效果比均值滤波器效果要好,对保留图像的边缘和其他高频部分很有用,不过计算量较大。维纳滤波器对具有白噪声的图象滤波效果最佳。

2.4 图像的边缘提取

图像边缘对图像识别和计算机分析十分有用,边缘能勾画出目标物体,使观察者一目了然;边缘蕴含了丰富的内在信息(如方向、阶跃性质、形状等),是图像识别中重要的图像特征之一。从本质上说,图像边缘是图像局部特征的不连续性(灰度突变、颜色突变、纹理结构突变等)的反映,它标志着一个区域的终结和另一个区域的开始。为了计算方便起见,通常选择一阶和二阶导数来检测边界,利用求导方法可以很方便的检测到灰度值的不连续效果。

2.5.1几种常用的边缘检测算子

边缘检测的基本思想首先是利用边缘增强算子,突出图像中的局部边缘,然后定义象素的 “边缘强度”,通过设置阈值的方法提取边缘点集。由于噪声和模糊的存在,监测到的边界可能会变宽或在某点处发生间断。因此,边界检测包括两个基本内容 :

1.用边缘算子提取出反映灰度变化的边缘点集。

2.在边缘点集合中剔除某些边界点或填补边界间断点 ,并将这些边缘连接成完整的线。

常用的检测算子有微分算子 、拉普拉斯高斯算子和canny算子。在Manab图像处理工具箱中,提供了edge函数利用以上算子来检测灰度图像的边缘。

(1)Sobel算子

Sobel算子是滤波算子的形式来提取边缘。X,Y放心各用一个模板,两个模板组合起来构成一个梯度算子。X方向模板对垂直边缘影响最大,Y方向模板对水平边缘影响最大。

v2-82794ed7ecfcb498e5b087716f0307dd_b.jpg

v2-fa8e9bc2db9987ba9ca928bfeb69983c_b.jpg

程序代码:

clc;clear;close all;

I=imread('公路裂缝.jpg');

J=rgb2gray(I);

BW1=edge(J,'sobel');

subplot(2,2,1),imshow(I),title('原图');

subplot(2,2,2),imshow(J),title('灰度图');

subplot(2,2,3),imshow(BW1),title('sobel边缘提取');

结果如图:

原图: 灰度图:


v2-fff1b9ab874c5443e40e521fe2f1a92b_b.jpg

v2-4a5ebd3dc9b0ec7b3d47b9634dc557be_b.jpg


Sobel边缘提取:


v2-c76d0fdd6b710f1619bdb009d97224de_b.jpg



(2).Robert算子

Robert算子是一种梯度算子,它用交叉的差分表示梯度,是一种利用局部差分算子寻找边缘的算子,对具有陡峭的低噪声的图像效果最好:


v2-4c657a1866b1b853e412ecba5fcc1a72_b.jpg


模板如下:

v2-5ed9b1bd83e7782482bff76b824b6af3_b.jpg

v2-04523a23efab5393f36e1ef6ac81d946_b.jpg


采用对角线方向相邻两像素之差表示信号的突变,检测水平和垂直方向边缘的性能好于斜线方向,定位精度比较高,但对噪声敏感,检测出的边缘较细。下面是用Robert算子对裂缝图片进行检测:

程序代码:

clc;clear;close all;

I=imread('公路裂缝.jpg');

J=rgb2gray(I);

BW1=edge(J,'robert');

subplot(2,2,1),imshow(I),title('原图');

subplot(2,2,2),imshow(J),title('灰度图');

subplot(2,2,3),imshow(BW1),title('robert边缘提取');

结果如图:


v2-8527bc6ebea833abd3757b049ca348cf_b.jpg



第三章 路面阴影消除

3.1 引言

在太阳光照射下,路旁的树木、灯杆等的投影常常形成路面阴影,它们造成了路面影像亮度的不均匀分布,而且,这种阴影具有形状不规则、半影区大等特点,使得阴影区域的界定非常困难;另外,由于同一幅影像中的各像素是在相同的曝光时间内采集得到的,从而处在阴影区的亮度对比度较非阴影区的小,表现为纹理细节要比非阴影区的纹理细节模糊,这种细节不一致会增加后续的路面裂缝识别的难度。为了更准确识别路面裂缝,这一节提出了路面阴影的消除算法。由于绝大多数路面影像都呈现为灰色,本节介绍阴影去除算法时将数据对象集中在对单通道的灰度路面影像进行处理。

3.2 背景与意义

目前,我国高等级公路的建设取得巨大发展,特别是在国家《公路、水路交通“十一五”发展规划》的推动下,直至2011年底,全国高速公路总里程已达8.5万公里,二级以上公路达到45万公里。随着公路的建成,路面养护与管理已然成为保障道路服务水平的关键,公路路面状况的基础数据的调查迫切需要先进的技术水平和科学的方法作为支撑。《国家中长期科学和技术发展规划纲要》将“交通运输基础设施建设与养护技术及装备”作为重点领域及其优先主题;《公路水路交通“十一五”科技发展规划》将“道路预防性养护与快速维修技术、无损检测技术、多功能养护设备研究开发”作为重大专题项目。在此背景下,公路路面养护自动化的研究也得到越来越多的重视。

在公路养护管理中,路面破损状况指数(PCI)是决策养护方案的最重要的数据。路面裂缝类病害是路面破损检测的重要内容,其自动化检测一直是公路路面破损检测的热点和难点。路面裂缝传统检测的方式是定期的人工检测,由于人工检测效率低、主观性大、安全性差等,它无法满足路面破损快速检测的需求。随着科技的进步,图像检测技术获得了快速的发展,由于其具有检测速度快、测量精准、自动化程度高、获取信息丰富等特点,已广泛应用于工业在线表面质量检测等领域。基于影像的检测方法已逐步成为路面裂缝检测的重要手段,然而由于路面裂缝具有细小不连续、对比度低、分叉且不规则等特点,使得传统的线状目标提取与识别算法不能满足要求。目前的商业化系统仍需人工交互来实现从图像中提取路面裂缝,其工作内容枯燥,工作量巨大,因此研发全自动的路面裂缝识别方法具有重要的意义。

传统的基于闽值化、边缘检测、小波变换等的裂缝自动检测算法假设路面裂缝在路面影像中具有较高的对比度和较好的连续性,但这种假设在工程实践中往往不成立。由于受路面阴影、裂缝退化等的影响,一部分裂缝相对于路面背景具有极低的信噪比,造成传统的裂缝检测算法失效。因此,本文专门针对低信噪比的路面裂缝的增强与提取进行研究,对提高裂缝检测的自动化水平具有重要意义。


3.3 测地阴影去除

路面图像经常被蒙上来自于树木,路灯杆等的阴影。在本节中,我们提出了一个更精确的算法来消除这种阴影探伤。大部分的路面图像是灰色的并没有太多的颜色信息。因此,在本文中,我们重点集中在开发上单色的路面图像的算法。在下面,我们先提出一个纹理平衡的照度补偿模式,以实现均匀的照明,阴影路面图像,然后提交拟议的大地测量学的阴影去除算法。

3.3.1 具有纹理均衡能力的亮度补偿方法

阴影去除,通常是通过亮度补偿实现的。如图2(a),S是阴影区域,B是在非阴影区域。让Iij替换(i,j)位置的强度,Is和Ib分别代替S和B区域的平均强度。我们可以通过平衡照度S和B去除阴影。

v2-56ded85704ef4a9f04c9477cd4c801ef_b.jpg


其中

v2-b14c978627429276462d0c59625cf073_b.jpg



v2-960c74bd9a901b3b62aa5be393f60a2d_b.jpg


两种亮度补偿方法的效果对比图

然而,阴影通常会降低图像的对比度:在阴影区域的裂缝和路面纹理的对比度都要比非阴影区的低,如图2.1 (a)所示,其中平行的斜线代表路面纹理,曲线代表裂缝。通过公式(2.1)的亮度补偿,阴影区的亮度可以达到非阴影区的亮度水平,但阴影区的低对比度并不能得到改善,结果见图2.1 (b)。这是因为公式(2.1)建立在单纯的加法运算的基础上,其只能改变对应像素集的整体亮度,不能改变它们的方差。因此,其处理的结果表现为阴影区与非阴影区的亮度一致,但阴影区的纹理细节却比非阴影区的弱。为了克服公式(2.1)的这个缺点,得到亮度和纹理都均衡的路面影像,本文提出了一个新的亮度补偿方法,见公式(2)。

v2-0a4200c71b5e40c44cf4763b87def98b_b.jpg


其中Ds和DB二分别表示阴影区和非阴影区的像素亮度值的标准方差,α=DB/Ds,且

v2-a77ab829b2313d3aa85dd532d21965fc_b.jpg

。在亮度补偿方法中,通过参数α的引入,可以将阴影区的方差提升到非阴影区的水平。由于影像像素的方差的大小通常反应了影像的对比度的强弱,公式(2)所展示的亮度补偿方法不仅可以使阴影区和非阴影区的亮度保持一致,而且可以使它们的纹理细节强度保持一致,如图2.1 (c)所示为纹理均衡的亮度补偿的结果。


3.3.2 基于了亮度等高区域划分的阴影消除


在以上的照度补偿模型中,我们假设一个硬阴影模型。然而,在实践中,大多数的路面图像中的阴影有大半影区,如图2(d)。规定了阴影区域和消除的阴影,实现了均衡照度的问题。如图2(d)所示,因为阴影强度单调下降的阴影边界的阴影中心,我们可以应用的测地线模型到阴影区域分割成不同的层次,使阴影实力在同一个水平是基本一致的。然后,我们可以进行纹理平衡照度补偿每个夷为平地的阴影区域去除阴影。更具体地说,我们提出了一个大地测量学的阴影去除算法(GSR),其中包含的后续四个主要的步骤。


v2-cb8de1e850d728684d842bd0ab36ece6_b.jpg


基于亮度高程模型的阴影区域划分及亮度均衡结果

步骤一,mmclose—形态闭合运算。采用灰度形态闭合运算(结构元素半径为rc),对原始路面图像进行处理,以除去细裂缝。此步骤的目的是消除裂缝对后续阴影区域划分的影响。因为裂缝的亮度与阴影区域的亮度较接近,为了避免将裂缝划为阴影区域内而被执行亮度补偿,需要在阴影区域划分前将裂缝去掉,灰度形态学闭运算能实现这一目标,如图2.2(c)是对原始路面图像2.2(b)进行形态闭运算处理的结果。

步骤二,gauSmooth—高斯平滑。对上一步骤所得的结果进行2维高斯平滑。本步操作的目的是将路面纹理进行平滑处理,消除路面纹理对后续阴影区域划分的影响。如图2.2(d)是对原始路面影像2.2(c)进行平滑的结果。

步骤三,geoLevel—亮度等高区域划分。首先计算N-1个阈值,0≤K1≤K2≤....≤KN-1≤255,用于将上一步骤得到的图像划分为不同的亮度等级区域{Gi|i=1,2,...,L,....,N},使区域Gi包含亮度值I∈(Ki-1,Ki]的所有像素,其中K0=-1,KN=255,算法细节见Algorithm 1,为了使算法具有普遍适用性,Algorithm 1将各个亮度等级区域内的像素数量保持一致;接着,选取L个较低的亮度等级{Si=Gi|i=1,2,....,L}作为阴影区域,而较高的N-L个亮度等B={Gi|i=L+1,L+2,...,N}作为非阴影区域,其中L取经验值7N/8。图2.2(e)显示了对图2.2(d)进行亮度区域划分的一个结果。

步骤四,illumComp—具有纹理均衡的亮度补偿。在原始路面影像中,应用公式(2.2)所对应的纹理均衡的亮度补偿方法,对每一等级的阴影区域Si 进行亮度补偿。图2.2(f)显示了最后的去除阴影的结果。


v2-d19732e55c5d310d7a4e0540658417c9_b.jpg


3.3.3 实验结果

原始图片:


v2-8cff0fc9d0977d869edf6811608d357d_b.jpg


  1. mmclose—形态闭合运算

程序代码:

imageOri = imread('裂缝1.jpg');

R=8;

I=rgb2gray(imageOri);

f1=I;

figure,imshow(f1);

b1=strel('disk',R);%开运算属于形态学图像处理,是先腐蚀后膨胀,作用是:

%可以使边界平滑,消除细小的尖刺,断开窄小的连接,保持面积大小不变等。

f2=imopen(f1,b1);

figure,imshow(f2);

imwrite(uint8(f2),'output_1.jpg');

结果如下:


v2-4469b9cdbc25dc7a86cccee29a7f5ee7_b.jpg


  1. gauSmooth—高斯平滑。

代码如下:

[M,N]=size(s); %分别返回s的行数到M中,列数到N中

n=2; %对n赋初值

d0=5; %初始化d0

n1=floor(M/2); %对M/2进行取整

n2=floor(N/2); %对N/2进行取整

for i=1:M

for j=1:N

d=sqrt((i-n1)^2+(j-n2)^2); %点(i,j)到傅立叶变换中心的距离

h=1*exp(-1/2*(d^2/d0^2)); %GLPF滤波函数

s(i,j)=h*s(i,j); %GLPF滤波后的频域表示

end

end

s=ifftshift(s); %对s进行反FFT移动

%对s进行二维反离散的Fourier变换后,取复数的实部转化为无符号8位整数

s=uint8(real(ifft2(s)));

figure; %创建图形图像对象

imshow(s); %显示GLPF滤波处理后的图像

title('GLPF滤波(d0=30)'); %为经GLPF滤波后的图像添加标题

imwrite(s,'result2.jpg');

结果如图:


v2-05477dcd4662ff4e0126abd4107de53a_b.jpg


  1. geoLevel—亮度等高区域划分。


v2-b94fcb7bf5a8113fadacc65328cc486f_b.jpg


  1. illumComp—具有纹理均衡的亮度补偿

代码如下:

function [g]=GSR(imageOri,imageGaosi,alfa,beta)

im=imageGaosi;

im2=imageOri;

[COUNTS,X]= imhist(im);

figure,imshow(im);

im = double(im);

figure,bar(COUNTS);

N=3000;

[x y]= size(im);

ng=(x*y)/N;

p=cell(1,256);

G=cell(1,N);

i=1;

sum =0;

a=[];

q=[];

for k=1:256

if(isempty(find(im,k)))

p{k}=nan;

else

p{k}=find(im==k);

q=[q;p{k}];

sum = sum + length(p{k});

if(sum >= ng)

G{i}=q';

q=[];

i=i+1;

sum = 0;

end

end

end

G{i+1}=q';

n=i+1

L=round(alfa*n);

L2 =round(beta*n)

background =[];

for i= L+1:L2

background = [background;G{i}'];

end

left =[];

for i=L2+1:n

left =[left;G{i}'];

end

Bstd = std(double(im2(background)));

Bmean = mean(double(im2(background)));

im3(background) = im2(background);

im3(left) = im2(left);

flag =1;

for i=1:L

Sstd = std(double(im2(G{i})));

Smean = mean(double(im2(G{i})));

alfa = Bstd/Sstd;

im3(G{i}) = double(im2(G{i}))*alfa + Bmean-alfa*Smean;

end

im3= reshape(im3,x,y);

figure,imshow(uint8(im3));

g =uint8(im3);

结果如下:


v2-696ca38f6e7797a9d2867cf30989517d_b.jpg




本章小节

路面阴影不仅会造成路面图像的亮度不均匀,而且会破坏了路面裂缝的亮度一致性,极大的增加了路面裂缝识别的难度。确定界定并消除路面影像阴影,对路面裂缝的识别非常关键。然而,由于路面阴影形状不规则,并且具有极大的半影区,给阴影界定带来了很大困难。在已有的研究中,大多阴影消除算法采用人工交互的方式划定阴影区、半影区和非阴影区,然而,人工交互具有主观性,效率低且容易出错,不适合对海量数据进行处理。另一方面,传统的亮度补偿方法不能实现纹理细节的均衡。由于同一幅影像中的阴影区域和非阴影区域是在相同的曝光时间内获得,阴影区的纹理对比度会比非阴影区的小,传统的加性亮度补偿只能均衡阴影区和非阴影区的亮度,而不能均衡它们的纹理细节。

针对路面阴影由于半影区巨大而难以界定的问题,提出了基于亮度高程划分的阴影区域界定方法,实现对阴影区及半影区的准确界定。它首先运用形态学闭合运算去掉路面影像中的裂缝,以实现在亮度补偿的同时保持裂缝不受影响,然后通过高斯低通滤波计算影像各区域的平均亮度,得到不受路面纹理影响的背景估计,最后运用形态学原理,对不同的亮度区域进行从低到高的划分一一亮度高程划分。针对传统的加性亮度补偿不能均衡纹理细节的问题,提出了乘性亮度补偿方法。由于区域像素值的方差与其对比度密切相关,方差越大,对比度则越大,反之亦然。同时,影像的对比度也决定了影像的纹理细节,通常对比度越高,影像的纹理便越清晰,反之则越模糊。因此,可以通过调节方差,实现影像纹理细节的增强与减弱。所提的乘性亮度补偿,在进行亮度补偿的同时,将阴影区的方差提高到与非阴影区的方差一致,从而实现阴影区和非阴影区纹理细节的均衡。

以上两者结合,得到了基于亮度高程模型的阴影消除算法(GSR),不仅能自动界定路面阴影区域,而且在保持裂缝的同时实现亮度和纹理细节的同步均衡。

通过实验,我们验证了所提GSR方法在处理路面影像阴影时具有较好效果,分析了GSR中形态学闭合运算(mmClose)模块的必要性,以及所提乘性亮度补偿方法的有效性。















  1. 基于灰度图像及其纹理特性的裂缝特征提取

4.1 图像预处理

在裂缝图像特征提取前要对其进行预处理,预处理包括多类型图像格式的识别、灰度化与增强以及图像二制化。

4.1.1 多种裂缝图像格式的识别

一个图像处理软件首要解决的困难是多种图像格式的识别,压缩过的图片是无法直接进行数字化处理的,如JPEG, GIF等格式的图片,这时首先要对图像文件解压缩。图像的数字化处理主要针对图像中的各个像素进行相应的处理。我们发现Windows下GIF,PNG,JPG文件都和E浏览器有关,所以IE支持这些格式。IImgCtx这个接口可以解码一切能够在IE中显示的图像格式,其中包括JPG,PNG, GIF, BMP, WMF, ICO,有时也能解码TIFF。解码后的图像是DDB,再转成DIB后,即可进行常规图像处理。

4.1.2 灰度化

一般的摄像头得到的裂缝图像是24位真彩色图,需要转换成灰度图,一方面便于后续更快速图像处理,另一方面也是对处理多种颜色路面裂缝图片进行了统一。灰度化可以采用标准的平均值法。用f(x,y)表示灰度化后的灰度值,R,G,B分别表示原来真彩色图中的红、绿、蓝分量,有:

f(x, y) = (R, G, B) (1)

f(x, y) = 0. 299R+ 0.587G+ 0.114B (2)

其中0.299 ,0.587和0.114是理论和实验推导证明得出的最合理的灰度图像的权值。下图为处理所得原图和灰度图对照:


v2-8274a05714051b4e21a87b9648deb940_b.jpg



4.1.3 灰度拉伸

大津法在图像分割中得到了广泛的运用,可是我们发现大津法在处理裂缝图像时,当目标物与背景灰度差不太明显时,会出现大块黑色区域,甚至导致丢失整幅图像的信息。由此我们提出了灰度拉伸增强的大津法。其原理就是在大津法的原有基础上通过增加灰度的级数使前后景的灰度差增强。灰度增加的方法是用原有的灰度级同乘以同一个系数,因此扩大灰度的级数,当乘的系数为1时就是大津法的原型。灰度拉伸涉及到了灰度的线性变化,不是完全的线性变换,而是分段进行线性变换,它可以有选择性的拉伸某一段灰度区间以改善输出图像的质量。灰度拉伸的灰度变化函数表达式如下:


v2-0e4cb0202df03774df1b1cd1be426a95_b.jpg

(3)

图2是将原图在x1和x2之间的灰度拉伸到y1和y2,如果裂缝图像的灰度集中在较暗的区域而导致图像偏暗,可以用灰度拉伸的方法来拉伸(斜率>1)物体灰度区间来改善图像;同样如果裂缝图像的灰度集中在较亮的区域导致图像偏亮,也可以用灰度拉伸来压缩(斜率<1)物体灰度区间来改善裂缝图像质量。

v2-28066a66885a185804a1f24b79d4fb9b_b.jpg


灰度拉伸变换函数

式3中((x1,y1)和((x2, y2)是图2中两个转折点的坐标。在实现时,对裂缝图像实现不同的灰度拉伸,发现对不同的图像,当遇上不同拉伸系数时,分割效果也相差很多,图3为原图和拉伸图像分割对比。


v2-61e2ef8c89f5186a4115f5d2b2758c7f_b.jpg


3 灰度拉伸后图像分割处理

4.1.4 二值化

通过对裂缝图像的平滑处理抑制了部分噪声,因为路面具有多纹理性、多目标性、裂缝弱信号性、光强的多变性以及裂缝上灰度的多变性,使通常的阈值选取方法很难得到最佳阈值。图像分割是图像处理这门学科中的基本难题,基于阈值的分割则又是图像分割的最基础的难题之一,其难点在于阈值的选取。在本设计中,阈值的选择恰当与否对分割的效果起着决定性的作用,我们通过迭代法和大津法两个经典算法对一系列采集的图片进行分割处理,可以得出大津法选取出来的阈值较为理想,图4为其中之一。


v2-c4776ff4373ca35c2ba1e6eb0ce5b2e2_b.jpg


4 图像分割比较

4.1.5 边缘增强

对于路面裂缝类问题的识别检测来说,边缘检测算法的成功与否在很大程度上影响识别和检测的效果与精度。边缘检测一般的方法是先对图像进行灰度边缘的增强处理,得出增强处理后的图像,然后设定门限,进行门限操作来确定出边缘明显的像素位置。

裂缝的边缘特性无论是裂缝的低灰度值部分还是高灰度值部分,它都与背景都有明显的边缘分界特征。利用边缘特征提取路面裂缝是广泛使用的方法。总结裂缝区别于其他对象的特征。

(1)从外观上看:

裂缝相对路面背景来说颜色更深更暗,因此裂缝上的像素值通常来说是局部最小值;

①裂缝是凹槽,其截面呈马鞍状;

②裂缝通常来说带有线性特征,具有一定的方向性,尤其是单根裂缝。

(2)从频域上分析:

裂缝病害,是一种高幅的负信号,在边缘部分有着高频分量,有阶跃性;

①和路面,属于缓慢变化的低频信号,幅值中等或偏高,具有连续性;

②噪音,由路面颗粒、污渍构成,是一种随机高频信号,其幅值一般较高。

如图5:


v2-dce69a83d4b74907aab09c407233e354_b.jpg


5 Canny算子边缘检测处理结果

4.2 特征提取

通过一系列预处理过程,最终日的是要提取裂缝的特征信息,它依靠的是描述物体形状特征的参数,这里包含裂缝的而积、长度和宽度等信息。

4.2.1裂缝“病害”而积计算

,面积在图像处理中的计算实质上就是计算物体(或区域)中包含的像素数,进行区域分割并对图像修正之后,路面图像中,已经把裂缝和破损分割出来,并进行二值化处理。对于病害中裂缝面积的计算,只需统计二值化图像中灰度值为0的像素个数占总像素个数的百分比,即可计算出裂缝面积。

定义二值裂缝图像中裂缝的面积为A就是目标物所占的像素点的个数,既区域边界内包含的总的像素点数。设目标.f(x,y)的大小为M*N,对二值图像,目标物f(x,y)= 1,背景为0,则裂缝的目标面积为:

v2-bf14a9b84c59a1c1788740dcb486d019_b.jpg

(4)

以图1横向裂缝为例,图6为去噪后面积像素测试的结果,裂缝病害像素个数占总像素的比例为:

v2-76af3b6b9ff0a4d3f548bcb95c311467_b.jpg

(5)

通过此结果,再根据硬件设备采集设计所定的比例尺,就可得到实际的面积结果,不同比例的数值需根据硬件设计方案确定,本次实验中的图片像素为774 x*1000,所摄取的路面的实际尺寸为697 mm*900 mm,据此即可得出此裂缝实际而积为:

S=摄取路面实际面积尺寸xμ=0.697m*0.9m*0.034=0.0216m² (6)

v2-4c886ca2f7c14906b2de40ce87bcc988_b.jpg

6 面积计算像素统计结果

在计算面积的过程中还有一个重要的问题就是去噪,这时不能纯粹使用提取骨架来去噪,因为细化后病害面积的特征就会失真,但是孤立的噪声点必须去除,经过边缘空隙填充后,在二值图上仍会有一些噪声点没有去除,这些噪声点为孤立点,会影响后面轮廓跟踪等细节处理,因此我们需要消除这些孤立点噪声。否则会把噪声点计入面积统计的有效像素点中,计算就会出错,为解决这个问题,提出去除孤立点的方法,我们采用长线段与原图进行与操作和判断黑色像素所占比例的方法,就可有效去除孤立点,图7为孤立点去除后的结果。

v2-f9fc0bf862532d4fa6153f4a42d11f2d_b.jpg


7 孤立点前后处理对比

4.2.2 裂缝“病害”长度计算

在得到“病害”的面积后,在实际的维护工程中常常还要知道它的大概长度,方便全面了解裂缝损坏程度。路面“病害”形状在大多数情况下非常的复杂,统计它的长度并不是一件容易的事。我们通过对多幅图像处理后的图片研究和分析,得出如果经过某种运算能够把裂缝和破损糅合成一条单像素宽的线,找到它的“骨架”部分,就能够通过统计像素点的个数,根据图片长边或宽边的像素点个数计算出“病害”骨架的长度。下而通过几种方法的综合使用尝试计算裂缝长度。

(1) 提取裂缝“病害”骨架

一个图像的“骨架”是描述图像的几何拓扑性质的重要特征之一。这里主要针对路面裂缝进行细化,尤其突出裂缝特征统计像素点个数,使用一种方法来解决裂缝骨架的提取问题。求解一幅图像骨架的过程通常称作对图像“细化”的过程。

所谓的细化就是从原来的图中去掉一些不需要的点,但仍要保持原来的形状。实际上,就是要保持原图的骨架。裂缝的骨架是具有完整描述裂缝长度以及走向的点所组成的曲线。通过分析可知,在细化一幅图像的过程中必须要满足以下两个条件:

第一,在细化的过程中,图像应该有规律地缩小;

第二,在图像逐步缩小的过程中,应当使图像的连通性值保持不变。

下面是具体的细化算法:

设p为被检测的像素,f(p)为像素p的灰度值,ni(i=1,2,....,8)为p的8领域像素,ni的位置如图8所示。

v2-3b0afa9e6caf931524e07daf34b0d8f5_b.jpg


图8

设集合I={1}表示需要细化的像素子集,集合N={g|g-m≤0}表示背景像素子集,集合R={-m}表示在第m次减薄时,I中被减掉的像素。

图像细化的减薄条件为:

v2-adae7a0cc73ff63a9b31d0ed45e900d2_b.jpg



v2-46d85ffb4952988aa8ac966145568e7b_b.jpg


图9是对图7中横纵裂缝阂值分割后的细化结果:

v2-8f1425cc2fe2d758cb2a716a09929e42_b.jpg


图9 细化结果

(2) 修剪裂缝“病害”骨架

一般情况下,细化的过程会在所生成的图像中留下一些小分支,被称为“毛刺”。毛刺是由边界上单像素尺寸的起伏高低造成的,每一个分支在距分分处不远的地方有一个端点,而且裂缝本身也不光滑,所以存在许多假枝和弯曲。对于单条裂缝而言,一般的短枝对整个病害分析并没有实际意义,而且还会增加后续处理分析的复杂性和出错率,所以只要找到整个裂缝主要的中轴骨架即可。

通过一系列消除端点的3*3邻域运算,使得分支缩短至除去,然后重建留下的分支,这个过程就叫剪枝运算。例如,一个3像素的毛刺在经过3次消除端点的迭代运算后即可消去。由于没有赖以复原的端点留下,毛刺就不会被重建。对于己被细化过的二值图像,剪除长度在L以下的短枝,算法如下:

①首先把二值灰度图像数据转化为0.1值,转化规则是:灰度为0的转化为1,灰度为255的转化为0。

②对于转化后的数据,每一个值为1的点,求其交点数(即分叉),并将所求得的交点数代替其值。

③扫描图像,检测出新端点,并将其置为-1。

④在新端点一定范围内搜索,找出近邻的交点,若其值大于2,则计算端点与交点之间的距离,并判断该距离值是否小于阈值L。是则转往第(5)步,否则继续执行第(4)步,若没有找到交点,则回到第(3)步。

⑤用3x3窗曰从端点跟踪至交点,并消去短枝,交点值减1。

⑥重复(3)到(5)的操作,直到没有新端点。

⑦处理结束,将未消除的端点由-1返回为1。

⑧还原图像数据,对于非0点,值转化为0;对于0值,转化为255。

图10就是对图9的修剪处理结果。

v2-8b30b1ae663f200dbcb3f612acf1f9e8_b.jpg


10 修剪结果

(3) 相同特征像素点的合并

由图10可以看出,经过细化与剪枝操作后,计算长度的可操作性就大大提高。对于“病害”形状不复杂时,可直接统计其像素点的个数,进行计算。但对于“病害”形状比较复杂的,仍然不能满足要求,如果直接统计必然会造成误差,而这种误差主要是统计了许多不应该计入长度的像素点。通过对细化和剪枝后的图像分析,进行下而的二次扫描操作,将最后所得的图像作为统计依据,以降低误差的大小。

假设缝间距离最小为L,那么对于细化和剪枝后的图像来说,扫描同一行元素,若两个值为0的像素行坐标之间距离小于L,说明其应为同一个裂缝中的像素,应该只保留一个。如此扫描一遍过后,图像中“病害”的竖向裂缝的长度可计算出。同理,若对每列扫描,然后把所得图像与逐行扫描处理所得图像做“或”叠加运算,若两幅图像中同样位置只要有一个像素值为0,最终输出图像的对应位置就为0。最后统计值为0的像素个数,再乘以比例尺即可得到所求长度。

此处以图10纵向裂缝为例,图11是对处理后的图10纵向裂缝长度计算测试结果,通过比例尺计算可知此裂缝长度L=长度像素个数x 0. 9 =1. 547 m。沥青路而软件检测系统在保证处理速度的同时,还要尽可能地减小误检率。通过本软件不但可以对规则裂缝很好地进行检测,而目_对不规则裂缝进行特征提取,也能够基本满足设计要求,相对人工测量具有更好的可行性和准确性。

v2-54d9b4b96e037e260e848f263512a47c_b.jpg


图11 长度计算像素点统计结果

最后在计算了而积S和长度L后,可以推导出裂缝的平均宽度W=S/L。宽度的计算在此给出是个估算,因为裂缝宽度具有不规则性和不同一性,不能给出一个定值。

  • 13
    点赞
  • 147
    收藏
    觉得还不错? 一键收藏
  • 5
    评论
评论 5
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值