matlab中提取裂缝图像,灰度图像中裂缝自动识别和检测方法与流程

4a1d5f9fd69d170a21ce3b30316d8c3a.gif

本发明属于测绘科学与图像处理的交叉领域,特别是涉及一种灰度图像中裂缝自动识别和检测方法。主要应用于桥墩表面裂缝自动识别和检测,也可应用于隧道衬砌、大坝表面的裂缝检测和识别。

背景技术:

桥墩在使用过程中在载荷和自然环境的共同作用下,会形成多种破损,表面裂缝是最常见的一种破损形式,对桥墩危害很大。为了评价桥墩出现裂缝后的稳定性,必须对裂缝进行必要的检查和测量,为桥梁结构安全评估和病害治理提供依据。目前对裂缝的检测主要有两种方法:一种是采用数显式裂缝观测仪,人工读取数据并记录。但是这种方法费时费力,不利于大规模的对桥墩进行安全检测评估。另一种方法是采用图像处理的方法检测和识别裂缝,首先用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也可以看出是同样的结果,本发明的算法效果明显改善。

综上所述,本发明的检测方法灵敏度高,抗噪声干扰性强,能够快速准确地表达出裂缝结构信息。

上面结合附图对本发明的实施例作了详细说明,但是本发明并不限于上述实施例,在本领域普通技术人员所具备的知识范围内,还可以在不脱离本发明宗旨的前提下作出各种变化。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/268679.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

出师表《80后传》

出师表《80后传》 夫80后者, 初从文, 未及义务教育之免费, 不见高等学校之分配, 适值扩招, 过五关, 斩六将, 硕博相继, 寒窗数载, 二十四乃成, 负债十万。 觅…

回顾模块3

1 回顾模块32 3 4 静态方法5 与类无关,不能访问类里的任何属性和方法6 类方法7 只能访问类变量8 属性property9 把一个方法变成一个静态属性,10 flight.status11 status.setter12 flight.status 313 status.delter14 反射1…

matlab信号频率分析实验报告,信号抽样实验报告

大连理工大学实验报告学院(系): 专业: 班级:姓 名: 学号: 组: ___ 实验时间: 实验室: 实验台:指导教师签字: 成绩:实验三 信号抽样一、实验目的1 …

VMware演示手机虚拟化

在今天的戛纳VMworld Europe 2009大会上,VMware展示了其开发的手机虚拟化技术,首次在同一台手机上同时运行两种操作系统。VMware企业桌面平台及方案部门主管Jerry Chen在会上现场演示了公司的移动虚拟化平台(MVP),在诺…

mysql decode encode 乱码问题

mysql decode encode 乱码问题 帮网友解决了一个问题,感觉还是挺好的。 问题是这样的: 问个问题:为什么我mysql中加密和解密出来的字段值不一样?AES_ENCRYPT和 AES_DECRYPT 但是解密出来就不对了 有时候加密变成空值 我试过&am…

matlab读取正则找科学,MATLAB常用正则表达式记录

MATLAB正则表达式一、正则表达式正则表达式是一串用于定义某种模式的字符。在有些情况下(例如,在解析程序输入或处理文本块时),您通常会使用正则表达式在文本中搜索与该模式匹配的一组单词。数据处理是matlab的长项,但是正则表达式在做一些不…

matlab序列谱分析,基于MATLAB序列谱分析及FFT实现快速卷积.pdf

数字信号处理大作业基于MATLAB 的序列谱分析与FFT 实现快速卷积学 院(系): 软件学院专 业: 网络工程学 生 姓 名:学 号:班 级:完 成 日 期:大连理工大学Dalian University of Technology报告内容一、设计题…

通过JDBC进行简单的增删改查(以MySQL为例)

目录 前言:什么是JDBC 一、准备工作(一):MySQL安装配置和基础学习 二、准备工作(二):下载数据库对应的jar包并导入 三、JDBC基本操作 (1)定义记录的类(可选) (2)连接的获…

Windows Mobile 6.0下实现自绘多种状态按钮(Win32) 续

这篇文章是以前的补充: http://www.cnblogs.com/wangkewei/archive/2009/02/24/1397490.html 放在首页是想借助各位从事Windows Mobile本地代码开发的前辈们力量,把这方面的资料完善一下,我会总结更多有关这方面的文章。 1.原理介绍DRAWITE…

search engine php,用php简单实现search engine friendly的url_php技巧

比如说我用的是虚拟主机,也想实现url优化,但是我没有服务器权限,这时候可以从PATH_INFO来下手.访问http://www.myhost.com/foo.php/a/A/b/B/c/C这个url的时候,如果apache的AllowPathinfo已经打开,用php访问$_SERVER[PATH_INFO]可以获得a/A/b/B/c/C这串字符 这时候再用php加以解…

新书品读《三级网络技术预测试卷与考点解析》,欢迎拍砖、跟砖提建议。

新书品读:《三级网络技术预测试卷与考点解析》已正式出版上市,欢迎拍砖、跟砖提建议。第1章 考前预测试卷11.1 上午试题(考试时间120分钟,满分100分)1.1.1 笔试试卷一、选择题(每小题1分,共60…

PHP外部引用样式,PHP引用外部css有什么好处

PHP引用外部css的好处有:1、网页处理速度会更快一些;2、可以防止一些电脑程度较低的使用者直接看到CSS语法;3、维护方便。PHP引用外部css有什么好处?php页面外部调用css样式表时有三处优点:第一个好处:网页…

程序员最痛苦的事,就是程序出错;程序员最最痛苦的事,就是程序出错了还没有错误信息!--IIS Service Unavailable 问题如何解决...

今天有人问如何处理IIS网站出现“Service Unavailable”的情况。 在网上google了一下,导致这个出错的原因很多,而“Service Unavailable”这个出错信息根本就没有什么价值。程序员最痛苦的事,就是程序出错;程序员最最痛苦的事&…

Swift - 重写导航栏返回按钮

// 重写导航栏返回按钮方法 func configBackBtn() -> Void { // 返回按钮 let backButton UIButton(type: .custom) // 给按钮设置返回箭头图片 backButton.setImage(UIImage(named: "NavigationBar_goBack_icon"), for: .normal) // 设置frame backButton.frame…

java多张图片上传安卓,Android Rxjava+Retrofit2 多图片+文字上传

注意点:方案一中:map.put(“files\”; filename\”” file.getName(), requestBody);方案二中:builder.addFormDataPart(“files”, file.getName(), imageBody);需与服务器一制,如:Content-Disposition: form-data; …