本发明属于测绘科学与图像处理的交叉领域,特别是涉及一种灰度图像中裂缝自动识别和检测方法。主要应用于桥墩表面裂缝自动识别和检测,也可应用于隧道衬砌、大坝表面的裂缝检测和识别。
背景技术:
桥墩在使用过程中在载荷和自然环境的共同作用下,会形成多种破损,表面裂缝是最常见的一种破损形式,对桥墩危害很大。为了评价桥墩出现裂缝后的稳定性,必须对裂缝进行必要的检查和测量,为桥梁结构安全评估和病害治理提供依据。目前对裂缝的检测主要有两种方法:一种是采用数显式裂缝观测仪,人工读取数据并记录。但是这种方法费时费力,不利于大规模的对桥墩进行安全检测评估。另一种方法是采用图像处理的方法检测和识别裂缝,首先用CCD相机获取桥墩表面的灰度图像,然后用图像处理算法识别出裂缝,并从背景中把裂缝提取出来。这种方法具有便捷、直观、非接触、可再现、适应性强等优点,具有很好的应用前景。
混凝土表面的自动裂缝识别主要有下面几种图像识别算法:
第一:阈值分割识别算法。这种方法假设裂缝和背景的灰度范围有较大差别,同过自适应的寻找阈值将其分开,从而提取裂缝。该方法计算简单但抗干扰性较差。
第二:边缘检测识别算法。这种方法假设裂缝具有较强的边缘特征,即背景内部和裂缝内部的灰度变化缓慢,从背景到裂缝灰度变换会产生跳跃。可以利用常用的边缘检测算子,如Sobel算子、拉普拉斯算子、canny算子等,检测裂缝的边缘。但这种方法对噪声较为敏感。
第三:基于区域生长的种子游走算法。这用方法是以一组“种子”像素点作为开始,根据一定的规则判断相邻像素点与“种子”像素是否相似,如果相似则将这些相邻像素点附加到“种子”像素上。最后根据图像的形态判断这些“生长”出来的图像是否为裂缝。这种方法的精确度仍然不高。
第四:基于神经网络的识别算法。这种方法是利用神经网络模拟大脑的工作模式。用神经网络进行裂缝识别需要训练样本对计算机进行训练,这些样本如果有裂缝则是正样本,如果没裂缝则是负样本。神经网络一般包括输入层、隐含层和输出层,每一层有大量的权值和阈值,通过训练来不断的调整这些权值和阈值,以保证输出结果的正确率。这种方法计算复杂度高、速度慢、检测过程复杂,还没有在工程实践中验证其价值。
技术实现要素:
本发明克服现有技术存在的不足,解决了现有自动裂缝识别的方法对噪声比较敏感,导致检测准确度下降的问题,旨在提供一种灰度图像中裂缝自动识别和检测方法,该方法受噪声影响较小,检测准确度高。
为解决上述技术问题,本发明采用的技术方案为:灰度图像中裂缝自动识别和检测方法,包括以下步骤:
步骤一,读取图像,对图像依次进行图像降噪处理和增强处理,得到增强后的图像,记为I0;
步骤二,设计模板矩阵,模板矩阵包括0度模板矩阵、45度模板矩阵、90度模板矩阵、135度模板矩阵共四个方向的矩阵;
步骤三,使用四个模板矩阵对图像I0分别进行图像卷积运算,得到4个卷积后的图像,记为I10、I11、I12和I13,
步骤四,对I10、I11、I12和I13进行限幅操作,即在上述图像矩阵中,如果一个元素的值小于零,则将该元素的值置零,如果一个元素的值大于给定的最大值,则将该元素的值置最大值;
步骤五,将I10、I11、I12和I13合并成图像矩阵I2,合并公式为:
I2(x,y)=max{I10(x,y),I11(x,y),I12(x,y),I13(x,y)};
步骤六,对图像矩阵I2进行二值化处理,即给定一个阈值,I2中所有大于阈值的元素置1,小于阈值的元素置0,二值化后的图像记为B0,这些值为1的元素可以组成若干个连通域,将连通域中元素的个数称为该连通域的面积,删除那些面积小于给定阈值的连通域,统计每个连通域的面积、长度、宽度和长宽比,给定一组阈值,如果有一个参数小于阈值,则删除该连通域,最后剩余的连通域则为检测出的裂缝。
步骤一中图像降噪处理采用高斯滤波和中值滤波来去除噪声。
步骤二中模板矩阵的设计原则为:
模版矩阵分成3个区域,记为A区、B区、C区,每个区域内部元素的值相等,A、B、C区域中元素值记为a,b,c,A区域和C区域的元素个数相同,记为N1,B区域的元素个数记为N2,要求N1×(a+c)-N2×b≈0。
步骤四中图像限幅操作可以根据额外获得的图像信息,改变I10、I11、I12和I13中元素的值。
本发明跟现有技术相比具有的有益效果为:本发明的裂缝自动识别和检测方法,能够快速准确地表达出裂缝结构信息,从而得到可以正确度量的相关参数。为后面桥墩表面裂缝的修复提供可靠的参考数据,具有十分重要的意义。本发明的方法也可以应用到隧道衬砌、大坝表面的裂缝检测和识别。
附图说明
下面结合附图对本发明做进一步详细的说明。
图1为0度模版矩阵示意图。
图2为45度模版矩阵示意图。
图3为90度模版矩阵示意图。
图4为135度模版矩阵示意图。
图5为原始图像1。
图6为原始图像1采用canny边缘检测算法检测到的裂缝图像。
图7为原始图像1采用本发明检测到的裂缝。
图8为原始图像2。
图9为原始图像2采用canny边缘检测算法检测到的裂缝图像。
图10为原始图像2本发明检测到的裂缝。
具体实施方式
为使本发明的目的、特征和优点能够更为明显易懂,下面结合附图对本发明的具体实施方式做详细的说明。
灰度图像中裂缝自动识别和检测方法,包括以下步骤:
步骤一,读取图像,对图像进行高斯滤波和中值滤波来去除噪声,使用幂次变换对图像进行增强处理,得到增强后的图像,记为I0。
步骤二,设计模板矩阵,模板矩阵包括0度模板矩阵、45度模板矩阵、90度模板矩阵、135度模板矩阵共四个方向的矩阵,模板矩阵的设计原则为:
模版矩阵分成3个区域,记为A区、B区、C区,如图1、图2、图3和图4所示,每个区域内部元素的值相等,A、B、C区域中元素值记为a,b,c,A区域和C区域的元素个数相同,记为N1,B区域的元素个数记为N2,要求N1×(a+c)-N2×b≈0。
例如:
3x3模版
9x9模版
步骤三,使用四个模板矩阵对图像I0分别进行图像卷积运算,得到4个卷积后的图像,记为I10、I11、I12和I13,
步骤四,对I10、I11、I12和I13进行限幅操作,即在上述图像矩阵中,如果一个元素的值小于零,则将该元素的值置零,如果一个元素的值大于给定的最大值,则将该元素的值置最大值;
如果知道一些额外的信息(如方向信息等),可以改变I10、I11、I12和I13中元素的值,比如如果知道裂缝的方向以水平为主(没有垂直方向的裂缝),则可以让I12的每个元素等于零。该步骤是可选步骤,通过该步骤可以进一步提升检测准确度。
步骤五,将I10、I11、I12和I13合并成图像矩阵I2,合并公式为:
I2(x,y)=max{I10(x,y),I11(x,y),I12(x,y),I13(x,y)};
步骤六,对图像矩阵I2进行二值化处理,即给定一个阈值,I2中所有大于阈值的元素置1,小于阈值的元素置0,二值化后的图像记为B0,这些值为1的元素可以组成若干个连通域,将连通域中元素的个数称为该连通域的面积,删除那些面积小于给定阈值的连通域,统计每个连通域的面积、长度、宽度和长宽比,给定一组阈值,如果有一个参数小于阈值,则删除该连通域,最后剩余的连通域则为检测出的裂缝。
下面在通过实验比较本发明与现有技术的区别,在背景中我们介绍了4中现有的算法,方法1、2效果一般,但计算量较小;方法3、4效果较好,但计算量很大,不适合大规模应用。下面我们比较了canny边缘检测算法和本发明算法的比较:
图5为原始图像,图6为canny边缘检测算法检测到的裂缝,图7为本发明检测到的裂缝。可以明显的看到图6中裂缝检测不完整,并且存在很多误检测。图7的检测结果完整且准确。
从图8-图10也可以看出是同样的结果,本发明的算法效果明显改善。
综上所述,本发明的检测方法灵敏度高,抗噪声干扰性强,能够快速准确地表达出裂缝结构信息。
上面结合附图对本发明的实施例作了详细说明,但是本发明并不限于上述实施例,在本领域普通技术人员所具备的知识范围内,还可以在不脱离本发明宗旨的前提下作出各种变化。