[0053] 下面将结合附图和实例对本发明作进一步的详细说明。
[0054] 砂浆饱满度是建筑行业砌体工程质量验收中一项重要的指标,以砖与砂浆接触面面积和对应砖面面积的百分比表示。目前从业人员测量砂浆饱满度的方法为手工测量法,费时耗力。为了提高砂浆饱满度的测量效率,本发明提出了一种基于图像处理技术的砂浆饱满度检测方法。
[0055] 本发明通过手机对待测砖块进行拍照就可以得到准确的测量结果,实现了砂浆饱满度的全自动检测。本发明首先对待测砖块进行拍照,然后利用砖块与砂浆的特征信息识别出图像中的砖块区域并得到砖块图像,其次在砖块图像中提取出砂浆区域,最后根据砂浆区域在砖块图像中所占的百分比得到砂浆饱满度并返回检测结果。对各种样例进行了实验,结果表明了该方法是可行的。
[0056] 本发明的实现流程图如图1所示,具体的实现步骤如下所示:
[0057] 步骤1:获取砂浆饱满度待测砖块的原始图像。
[0058] 原始图像要求:图像内只有一个涂有砂浆的砖块,且砂浆面必须呈正面;涂有砂浆的砖块占整个图像面积的百分之二十以上。
[0059] 步骤2:利用砂浆的纹理和颜色信息粗略提取原始图像中的砂浆区域。
[0060] 砖块图像的特征分析如下:
[0061] 以自然光下拍摄的待测砖块图像为例,如图2所示。选取图像上任意一块砂浆区域或者未被砂浆覆盖的砖块区域,检测该区域所有像素的R、G、B值,并绘制R分量与G分量、R分量与B分量和G分量与B分量的数据关系图,如图3所示。分析数据得到,虽然由于光照强度的影响会导致样本区域不同像素点R、G、B的值相差较大,但是三个分量两两之间非常接近正比关系。它们之间的关系可以表示为如下公式:
[0062]
[0063] 其中,R表示红色通道值,G表示绿色通道值,B表示蓝色通道值,k1、k2、k3分别代表它们之间的比例系数。
[0064] 图像分割的阈值范围选定方法如下:
[0065] 为了提取出图像中的砂浆区域或者砖块区域,需要对图像进行阈值分割,然后标定出目标区域。本发明采用的方法是,选取图像中的砂浆或砖块样本区域,通过样本区域特征得出图像分割的阈值公式。
[0066] 选取图像中的砂浆或者砖块样本区域,根据砖块图像的特征分析可以知道,样本区域三个颜色分量两两之间成正比关系,把样本区域每一个像素点的R、G、B值带入公式2,可以计算出样本区域三个颜色分量两两之间的比例系数,在二维坐标系中代表斜率。
[0067]
[0068] 其中,n表示样本区域像素点的个数,i代表样本区域不同的像素点,R(i)、G(i)和B(i)分别代表样本区域中i像素点的红色通道值、绿色通道值和蓝色通道值。
[0069] 以G分量和R分量的关系为例,选取如图4所示的四条直线,使得这四条直线所围成的区域恰好包含所有采样点。这表示样本区域像素点的R分量与G分量都集中在这个区域。同理,可以根据B分量与R分量和B分量与G分量的关系得到各自所对应的四条直线。
[0070] 由于样本区域特征可以代表目标区域特征,所以目标区域每个像素点值的只也基本满足如上选定的范围,于是可以得到如下阈值公式:
[0071]
[0072] 其中,bgr1和bgr2、rgr1和rgr2分别表示ROG坐标系中对应直线与G、R坐标轴的截距,bbr1和bbr2、rbr1和rbr2分别表示BOR坐标系中对应直线与B、R坐标轴的截距,bbg1和bbg2、gbg1和gbg2分别表示BOG坐标系中对应直线与B、G坐标轴的截距。
[0073] 粗略提取图像中砂浆区域的方法如下:
[0074] 为了提取出图像中的砂浆区域,首先需要在图像中选出砂浆样本区域,然后根据样本区域得出图像分割的阈值公式,进而提取出砂浆区域。研究发现,图像中的砂浆区域呈现密密麻麻的颗粒状,对图像进行边缘检测,可以将砂浆区域的纹理提取出来,从而得到具有一定特征的砂浆区域。砂浆区域的提取过程如图5所示,首先对原图进行边缘检测,得到边缘提取后的图像。然后在边缘提取后的图像中找出两个坐标轴方向上穿过边缘最多的直线,选取两个直线的交点,以该点为中心选取单位长度的正方形区域作为砂浆样本区域,并根据砂浆样本区域得到图像分割的阈值公式。最后遍历图像中的每个像素,将该像素点的R、G、B值代入阈值公式3,如果不等式成立,表示该像素点属于砂浆区域,如果不等式不成立,表示该像素点不属于砂浆区域,从而提取出图像中的砂浆区域,得到粗略砂浆区域图像。
[0075] 步骤3:对原始图像和粗略砂浆区域图像进行旋转校正。
[0076] 粗略提取出的砂浆区域可以大致的表示出砖块区域,为了提取出未被砂浆覆盖的砖块区域,需要对图像进行旋转校正。砂浆区域最小外接矩形的四条边分别与砖块的四条边平行,得到了砂浆区域最小外接矩形四条边与坐标轴平行的图像就得到了砖块四条边与坐标轴平行的图像。本发明利用求砂浆区域最小外接矩形的方法来计算出图像所需要旋转的角度,该方法是将图像在90°内等间隔的旋转,每次旋转都记录水平、垂直方向砂浆区域外接矩形的面积,选出面积最小的旋转角度作为图像的旋转校正角度,并对原图像和粗略砂浆区域图像进行旋转校正,得到校正后的原始图像和校正后的粗略砂浆区域图像;。
[0077] 步骤4:对校正后的原始图像提取未被砂浆覆盖的砖块区域;
[0078] 为了提取出更准确的砖块区域,需要在提取出砂浆区域的基础上,继续提取出未被砂浆覆盖的砖块区域。根据提取出的砂浆区域和未被砂浆覆盖的砖块区域可以得到更精确的砖块区域。
[0079] 具体实现步骤如下:
[0080] 4.1)如图6所示,找出平行于x轴的直线y0,使得直线y0上的砂浆像素点总数在该方向上取得最大值。同样找出平行于y轴的直线x0,使得直线x0上的砂浆像素点总数在该方向上取得最大值。
[0081] 4.2)取两条平行于x轴的直线y1、y2分别从上、从下逼近砂浆区域,当直线上的砂浆像素点个数大于直线y0上的百分之a时,停止逼近,a初始化为30。同样的方法找出两条平行于y轴的直线x1、x2。
[0082] 4.3)寻找样本区域。以直线x2为例,设直线中心为ox2。取矩形模板在区域内部沿着直线从中心分别向上、向下遍历,当矩形模板内砂浆像素点所占的比例小于百分之五时,停止遍历,并标记该区域为样本区域,当矩形模板超出四条直线所围成的区域时,同样停止遍历。以同样的方式选取其余三条直线所对应的样本区域。
[0083] 4.4)如果找出了样本区域,进入下一步步骤4.5。如果没有,跳到步骤4.2,并设置a=a-5。直至a≤10结束,进入下一步步骤5。
[0084] 4.5)如果找出了样本区域,用提取砂浆区域的方法提取未被砂浆覆盖的砖块区域。如果没有找出砖块样本区域,那么认为没有未被砂浆覆盖的砖块区域。
[0085] 用上述方法提取出的未被砂浆覆盖的砖块区域的图像如图7所示。
[0086] 步骤5:利用校正后的粗略砂浆区域图像和未被砂浆覆盖的砖块区域图像,在校正后的原图像中标定出砖块区域位置,并得到砖块图像;若未被砂浆覆盖的砖块区域没有找到,则用校正后的粗略砂浆区域图像,在校正后的原图像中标定出砖块区域的位置,得到砖块图像;
[0087] 步骤6:在砖块图像中精确的提取出砂浆区域。
[0088] 图8中a是将砖块单独提取出来的图像。为了计算出砂浆饱满度,需要精确的提取出砖块图像上的砂浆区域。
[0089] 利用前面提取砂浆区域的方法可以粗略的提取出砖块图像中的砂浆区域。该方法所存在的误差主要表现在以下两个方面。
[0090] 第一,从业人员在实际测量的过程中,会将稀薄的砂浆区域算作无效砂浆区域。但前面方法在提取砂浆区域的过程中也会将无效的砂浆区域提取出来。
[0091] 第二,前面方法提取出来的砂浆区域不连续,呈现蜂窝状,大大地减少了砂浆区域的面积。
[0092] 为了得到精确的砂浆区域,首先需要在粗略提取的基础上剔除无效的砂浆区域,然后再将砂浆区域联通起来。
[0093] 第一步,对砖块图像再次进行砂浆区域粗提取;
[0094] 第二步,剔除无效的砂浆区域。研究发现,无效砂浆区域表现为砂浆与砖块交替出现的特征,提取出的有效砂浆像素点在上、下、左、右四个方向上指定长度内都会出现砂浆像素点,而对于无效砂浆区域,该区域内砂浆密度较小,无效砂浆像素点在指定长度内四个方向上都出现砂浆像素点的概率很小。本发明利用无效砂浆区域的该特征来剔除误提取的砂浆区域。
[0095] 第三步,将砂浆区域联通起来。对图像进行膨胀处理,然后将砂浆连通区域内的像素都设为砂浆区域。
[0096] 采用阈值法、区域生长法和本发明方法提取砂浆区域得到的结果如图8所示,其中白色区域代表提取出的砂浆区域。对比可以看出,本发明方法可以更加准确地提取出砖块图像上的砂浆区域。
[0097] 步骤7:计算提取出的砂浆区域在砖块图像中所占的百分比,得到砂浆饱满度。
[0098] 以多幅差异较大的砖块图像作为测试对象,利用本发明来计算图像中砖块的砂浆饱满度。
[0099] 样例的实验过程如图9所示。
[0100] 样例砂浆饱满度的实际测量结果与实验结果如表1所示。
[0101] 表1样例的实际测量结果与实验结果
[0102]
[0103] 实验结果表明,本发明方法可以标定出砖块在图像中所在的位置,并准确的提取出砖块图像,同时可以在砖块图像中较准确地提取出砂浆区域,并得到接近实际测量结果的砂浆饱满度。