一种混凝土裂缝图片拼接与检测方法与流程

文档序号:22579180发布日期:2020-10-20 16:55阅读:197来源:国知局
一种混凝土裂缝图片拼接与检测方法与流程

本发明涉及一种混凝土裂缝图片拼接计算机处理方法,具体涉及一种混凝土裂缝图片拼接、检测方法。



背景技术:

表面裂缝是混凝土结构监测与损伤识别的重要指标之一。混凝土结构表面裂缝产生原因有很多,例如温度应力、疲劳载荷、材料老化、结构变形等。当裂缝宽度大于0.2mm以上时,混凝土会产生脱落、碳化、钢筋腐蚀等现象,严重时会发生倒塌事故。因此,对混凝土裂缝指标尤其是最大裂缝宽度的识别与标定,对保障混凝土结构安全具有非常重要的现实意义。

目前,常用的裂缝检测方法是图像处理法,经过裂缝图片预处理、裂缝提取、裂缝识别与参数计算等过程,获得裂缝长度、宽度等参数。在实际工程应用中,现有的基于图像处理的裂缝检测方法存在诸多不足,主要体现在两个方面:一是检测的对象是单一图片,没有实现大规模裂缝图片的拼接、检测一体化,无法获得裂缝的完整形态及相对位置。虽然目前已有一些平面图片的拼接方法,由于拼接过程中对图片进行了旋转、缩放等变换,不适用于大规模图片的拼接,且变换时更改了图像信息,不适用于裂缝参数测量。二是现有方法为了达到工程检测中0.2mm的精度要求,对图片质量要求较高,所以每次检测的区域面积较小,严重降低了工作效率。



技术实现要素:

针对以上问题,本发明的目的是提供一种能够实现大规模裂缝图片拼接、检测的混凝土表面裂缝的识别方法,该方法不仅能达到0.2mm的工程检测精度要求,且单张图片的拍摄面积允许大于100cm2,大大提升了检测效率。

本发明解决技术问题所采用的技术方案是一种混凝土裂缝图片的拼接与检测方法,其特征在于,包括以下步骤:

步骤1:对两张图片分别提取其中的特征点,根据特征点描述子的计算结果确定匹配对,计算重叠区域的尺寸,对图片进行拼接;

步骤2:利用基于均值滤波的自适应阈值分割法得到粗分割图像,具体包括:

a.将步骤1得到的拼接图片作为原图像,进行均值滤波;选定一个m×m的滤波器模板a,对裂缝图片内任意一点的灰度值,用模板a内m×m个像素点的灰度平均值代替,用公式表示:

式中:f(x,y)表示原图像在点(x,y)处的灰度值,g(x,y)表示滤波后的图像在点(x,y)处的灰度值;

b.用滤波后的图像减去原图像,得到每个像素点的灰度值差sub(x,y),即sub(x,y)=g(x,y)-f(x,y),将灰度值差sub(x,y)大于10的各值取平均值:

式中:k为灰度值差sub(x,y)大于10的像素点个数;o为灰度值差大于10的像素点的集合;

c.将上一步获得的t1作为阈值进行图像分割,得到粗分割后的裂缝图片f′(x,y),f′(x,y)=1代表裂缝,f′(x,y)=0代表背景,用公式表示:

步骤3:连通域去噪,得到完整裂缝图像;

进一步,所述图片拼接方法,包括以下步骤:

a.将待拼接的两张图片转换为灰度图像,把图像数据类型转换为双精度类型;

b.提取两张灰度图像的特征点,采用自适应非极大值抑制算法去除大部分特征不明显的特征点,计算特征点的描述子并进行比较,把两个特征点的描述子比值小于设定阈值的点作为正确的匹配对,记录每一对匹配点的坐标;

c.对于拼接方向为竖直方向且重叠区域在第一张图片右下角的两张待拼接图片,将每一对匹配点的行坐标、列坐标的差分别求和,除以匹配对的数量,得到重叠区域的高度h和两张图片在水平方向上的相对位移w;

d.将两张图片共分为三个部分:上面部分为第一张图片在重叠区域上边缘以上的部分,下面部分为第二张图片在重叠区域下边缘以下的部分,在重叠区域的左右各取一个三角形,与重叠区域一起作为中间部分;

中间部分的融合方法为:左边三角形根据第一张图片对应位置的像素信息进行赋值,右边三角形根据第二张图片对应位置的像素信息进行赋值,重叠部分根据前一张图片对应位置的像素信息进行赋值。赋值过程用公式表示:

k=w/h*j

式中,aandb(j,i)、a(j,i)、b(j,i)分别表示中间部分、第一张原图片、第二张原图片的第j行、第i列的像素点的灰度值,y为原图片在竖直方向上的像素点个数,h为重叠区域的高度,w为两张图片的相对位移;

e.将赋值后的三个部分的坐标及像素信息按顺序储存在一个列数为2*y-h的大矩阵中,生成拼接后的图片。

进一步,所述连通域去噪是对粗分割后的裂缝图片进行连通域检测,根据连通域的几何特征去除噪声,具体包括:

a.圆形度去噪:在图像处理中,圆形度用来描述连通域与圆的接近程度,裂缝形状比较细长,圆形度较小,而噪声形状多为点状,圆形度接近1。因此设置一个阈值t1,求出连通域的面积a和周长l,利用公式c=l2/4πa求出各连通域对应的圆形度c,圆形度小于t2的连通域作为裂缝保留,圆形度大于等于t2的连通域作为噪声去除;

b.形状极值去噪:剩余极少数形状不规则的噪声,由于在尺寸上与裂缝有较大差异,可以采用连通域形状极值来辨别。求出剩余各连通域的最小外接矩形的宽w和高h,利用公式t=max(w,h)求出形状极值,设定一个阈值t3,将形状极值t大于t3的连通域作为裂缝保留,形状极值t小于等于t3的连通域作为噪声去除。

进一步,所述利用边界填充方法测量裂缝的最大宽度及其位置,具体包括:

a.经过连通域去噪后可获得完整的裂缝区域,对裂缝区域内每一个像素点的八邻域的灰度值求和;

式中,fn(x,y)为像素点(x,y)的n邻域的像素值;

b.将sum(x,y)小于8的所有像素点作为当前裂缝区域的边界,将边界像素点的灰度值用背景区域的灰度值填充;

c.循环a和b两个步骤,直到裂缝区域被完全填充为止,记录最终的循环次数p,裂缝区域最后被填充的像素点即为裂缝最宽处;

d.根据上一步获得的循环次数p,利用公式wmax=2×p×d求出裂缝宽度最大值。

式中,d为每个像素点代表的实际宽度;

e.根据上一步的结果将最大宽度wmax标记在裂缝图片相应位置。

本发明的有益效果是:

本发明方法计算效率高、检测精度高,解决了现有技术存在的图片拼接效果差的问题,能够实现大规模平面图片的高质量拼接,进而可以获得裂缝的完整形态及分布情况,能够准确标定裂缝的最大宽度及相应位置,更加适合工程应用环境。

附图说明

图1是本发明实施例中裂缝图片拼接、检测方法流程图;

图2是相机拍摄状态示意图;

其中:(a)为理想拍摄状态,(b)为实际拍摄状态

图3是两张待拼接图片及重叠区域示意图;

图4是对重叠区域取三角形局部示意图;

图5是六张裂缝图片拼接结果图;

图6是像素点八邻域分布示意图;

图7是两张裂缝图片原图;

图8是两张裂缝图片的拼接结果;

图9是两张裂缝图片拼接后的裂缝提取结果;

图10是裂缝最大宽度检测与标定结果。

具体实施方式

现结合实施例、附图对本发明作进一步描述:

本发明实施例所提供的裂缝图片拼接与检测的方法,流程图如图1所示,该方法具体包括步骤如下:

(1)拼接图片;

(2)基于均值滤波的自适应阈值分割;

(3)连通域去噪;

(4)基于边界填充的最大宽度测量方法测量裂缝的最大宽度及位置。

下面分别对各步骤作详细说明:

首先,为了方便理解本发明实施例,在此先介绍一下相机拍摄过程中的一个现象,如图2所示,当相机沿直线(相机位移s)对平面进行拍摄时,理想拍摄状态下,见图2的(a),第一次拍摄1和第二次拍摄2的重叠区域3宽度与成像宽度是相等的,但是实际拍摄状态下,见图2的(b),由于相机偏差角θ的存在,且相机偏差角θ很难完全校正,实际上两者是不相等的,这是常规图片拼接方法出现较大误差的主要原因。

上述步骤(1):

将待拼接的两张图片转换为灰度图像,利用matlab中的im2double函数把图像数据类型转换为双精度类型;

利用harris角点检测函数分别提取两张图片的特征点,采用自适应非极大值抑制算法(anms)去除大部分特征不明显的特征点,保留设定的特征点数量t,计算特征点的描述子并进行比较,把两个特征点的描述子比值小于设定阈值的点作为正确的匹配对,记录每一对匹配点的坐标。

较佳地,首先估计重叠区域的面积,设置harris函数搜索范围。本发明实施例将大于重叠面积20%的部分作为搜索范围,提高了检测效率。

对于拼接方向为竖直方向且重叠区域3在第一张图片4右下角的两张待拼接图片,将每一对匹配点的行坐标、列坐标的差分别求和,除以匹配对的数量,得到重叠区域3的高度h和两张图片的相对位移w,如图3所示。

将两张图片共分为三个部分:上面部分4-1为第一张图片在重叠区域上边缘以上的部分,下面部分5-1为第二张图片在重叠区域下边缘以下的部分,在重叠区域3的左右各取一个三角形,与重叠区域一起作为中间部分6,参见图4。

中间部分6的融合方法为:左边三角形δabc根据第一张图片对应位置的像素信息进行赋值,右边三角形δdef根据第二张图片对应位置的像素信息进行赋值,重叠部分根据第一张图片对应位置的像素信息进行赋值。

中间部分融合过程用公式表示:

k=w/h*j

式中,aandb(j,i)、a(j,i)、b(j,i)分别表示中间部分、第一张原图片、第二张原图片的第j行、第i列的像素点的灰度值,y为原图片在竖直方向上的像素点个数。h为图3中重叠区域3的高度,w为图3中两张图片的相对位移;

将三个部分的坐标及像素信息储存在一个列数为2*y-h的大矩阵中,生成拼接后的图片。

本发明实施例步骤(1)介绍的是两张待拼接图片的拼接方法,对多张混凝土裂缝图片进行拼接时,可以简化为多次两两拼接的过程,即可以采用上述步骤(1)实现,本发明适用于多张平面图片的拼接,图5为六张裂缝图片的拼接效果图。

上述步骤(2):

对原图像进行均值滤波。选定一个m×m的滤波器模板a,裂缝图片内任意一点的灰度值,用模板a内m×m个像素点的灰度平均值代替,用公式表示:

式中:f(x,y)表示原图像灰度值,g(x,y)表示滤波后图像灰度值。

较佳地,m的值应大于两倍实际裂缝的宽度,且m的取值越大效果越好。

用滤波后的图像减去原图像,得到每个像素点的灰度差sub(x,y),将灰度值差sub(x,y)大于10的各值取平均值t1,用公式表示:

sub(x,y)=g(x,y)-f(x,y)

式中,f(x,y)为原图片在像素点(x,y)处的灰度值,g(x,y)为滤波后图片在像素点(x,y)处的灰度值,k为灰度值差sub(x,y)大于10的像素点个数;o为灰度值差大于10的像素点的集合。

将上一步获得的灰度平均值t1作为阈值进行图像分割,将各像素点的灰度值差sub(x,y)与4t1/5作比较,大于等于4t1/5的像素点赋1,小于4t1/5的像素点赋0,得到粗分割后的裂缝图片f′(x,y),用公式表示:

上述步骤(3):

利用matlab中的regionprops函数得到粗分割后裂缝图片中每个连通域的面积a和周长l,利用公式c=l2/4πa求出各连通域对应的圆形度c,设定一个阈值t2,圆形度小于t2的连通域作为裂缝保留,圆形度大于等于t2的连通域作为噪声去除。

较佳地,t2的范围取0.1~0.3效果较好。

进一步地,求出剩余各连通域的最小外接矩形的宽w和高h,利用公式t=max(w,h)求出形状极值,设定阈值t3,形状极值t大于t3的连通域作为裂缝保留,形状极值t小于等于t3的连通域作为噪声去除。本实施例中t3的值取600效果最佳。

上述步骤(4):

像素点的八邻域分布参见图6,对裂缝区域内每一个像素点的八邻域的灰度值求和:

式中,fn(x,y)为点(x,y)的n邻域的像素值。

将sum(x,y)不等于0的所有像素点作为当前裂缝的边界,记录p=1,然后将边界灰度值用背景颜色的灰度值填充,循环以上操作,继续搜寻填充后的裂缝区域的边界,记录p=p+1,直到裂缝区域被完全填充为止,记录最终的循环次数p,裂缝区域最后被填充的像素点即为裂缝最宽处。

根据上一步获得的循环次数p,利用公式wmax=2×p×d求出裂缝宽度最大值。

式中,d为每个像素点代表的实际宽度。

根据上一步的结果将最大宽度wmax标记在裂缝图片相应位置。

如图7是两张裂缝图片原图,图8所示是两张裂缝图片的拼接结果,图9所示是阈值t2和t3分别取0.2和600时的裂缝提取效果,图10是裂缝最大宽度检测与标定结果。

显然,本发明的上述实施例只是为清楚地说明本发明所作的举例,而并非是对本发明的实施方式的限定。对于所属领域的技术人员来说,在上述说明的基础上还可以做出其它不同形式的变化或变动。这里无需也无法对所有的实施方式予以穷举。凡在本发明的精神和原则之内所作的任何修改、等同替换和改进等,均应包含在本发明权利要求的保护范围之内。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1