CN115578343A - 一种基于图像连通与骨架分析的裂缝尺寸测量方法 - Google Patents
一种基于图像连通与骨架分析的裂缝尺寸测量方法 Download PDFInfo
- Publication number
- CN115578343A CN115578343A CN202211223265.9A CN202211223265A CN115578343A CN 115578343 A CN115578343 A CN 115578343A CN 202211223265 A CN202211223265 A CN 202211223265A CN 115578343 A CN115578343 A CN 115578343A
- Authority
- CN
- China
- Prior art keywords
- crack
- graph
- pixel
- image img
- value
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T7/00—Image analysis
- G06T7/0002—Inspection of images, e.g. flaw detection
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T7/00—Image analysis
- G06T7/60—Analysis of geometric attributes
- G06T7/62—Analysis of geometric attributes of area, perimeter, diameter or volume
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T7/00—Image analysis
- G06T7/90—Determination of colour characteristics
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06V—IMAGE OR VIDEO RECOGNITION OR UNDERSTANDING
- G06V10/00—Arrangements for image or video recognition or understanding
- G06V10/20—Image preprocessing
- G06V10/26—Segmentation of patterns in the image field; Cutting or merging of image elements to establish the pattern region, e.g. clustering-based techniques; Detection of occlusion
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06V—IMAGE OR VIDEO RECOGNITION OR UNDERSTANDING
- G06V10/00—Arrangements for image or video recognition or understanding
- G06V10/20—Image preprocessing
- G06V10/34—Smoothing or thinning of the pattern; Morphological operations; Skeletonisation
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06V—IMAGE OR VIDEO RECOGNITION OR UNDERSTANDING
- G06V10/00—Arrangements for image or video recognition or understanding
- G06V10/20—Image preprocessing
- G06V10/36—Applying a local operator, i.e. means to operate on image points situated in the vicinity of a given point; Non-linear local filtering operations, e.g. median filtering
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06V—IMAGE OR VIDEO RECOGNITION OR UNDERSTANDING
- G06V10/00—Arrangements for image or video recognition or understanding
- G06V10/40—Extraction of image or video features
- G06V10/44—Local feature extraction by analysis of parts of the pattern, e.g. by detecting edges, contours, loops, corners, strokes or intersections; Connectivity analysis, e.g. of connected components
- G06V10/457—Local feature extraction by analysis of parts of the pattern, e.g. by detecting edges, contours, loops, corners, strokes or intersections; Connectivity analysis, e.g. of connected components by analysing connectivity, e.g. edge linking, connected component analysis or slices
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T2207/00—Indexing scheme for image analysis or image enhancement
- G06T2207/10—Image acquisition modality
- G06T2207/10024—Color image
Landscapes
- Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Theoretical Computer Science (AREA)
- Computer Vision & Pattern Recognition (AREA)
- Multimedia (AREA)
- Quality & Reliability (AREA)
- Geometry (AREA)
- Nonlinear Science (AREA)
- Image Analysis (AREA)
Abstract
本发明公开了一种基于图像连通与骨架分析的裂缝尺寸测量方法,具体为:通过对原图像进行图像预处理及裂缝分割,检测每条裂缝连通图,通过对连通图内所有像素点数量求和计算连通图的面积,然后提取图像的骨架,对连通图内所有像素点进行欧几里德距离变换,从计算得到的连通图的距离变换矩阵中抽取骨架上像素点的距离变换值;计算求取骨架、最大裂缝宽度、最大裂缝位置信息,在原图像上绘制骨架线,并标注裂缝编号及宽度值,完成图像裂缝可视化标记后保存图像文件。本发明的有益效果是:本发明可以用于多种场景的裂缝尺寸测量,具有应用范围广、适应性强、测量准确、消耗算力小、运行效率高等特点。
Description
技术领域
本发明涉及图像分析处理技术领域,尤其涉及一种基于图像连通与骨架分析的裂缝尺寸测量方法。
背景技术
本发明所述的裂缝,是指物体表面裂成狭长的缝,常见于地质构造、工业产品、道路、建筑物、河堤等。裂缝在很多情况下是一种缺陷,存在潜在的隐患,人们都希望尽早发现它,以便及时采取相应措施。对裂缝的发现、识别、测量有很多种方法,比如人眼观测法、实地测量法、仪器测量法、电子射线扫描分析法、图像分析法等等。
近些年来,计算机视觉技术快速发展,越来越多的科研人员开始利用数字图像处理与分析技术研究裂缝的检测、识别,甚至计算裂缝的长度、宽度等尺寸。由于数字图像分析方法具有普遍适应性,成本相对较低,目前被广泛应用。应用这项技术,可以代替部分人工,提高生产效率,降低成本。可以用于工业产品、道路、建筑物、河堤、大坝等的裂缝缺陷检测,用途相当广泛。
但由于裂缝形状各异,无固定规则,且环境背景各不相同,又受到光照、拍摄角度等影响,干扰因素众多,要想在复杂背景中准确识别裂缝往往是很难的事,更别说还要精确测量裂缝的各项尺寸了。
通过研究近两年的论文发现,目前基于图像处理分析技术测量裂缝宽度的常用方法分为以下几类:①基于裂缝周长与面积的对应关系求解裂缝的平均宽度值;②通过计算裂缝内每个像素点对应的最大内切圆的集合求裂缝最大宽度;③检测边缘轮廓,计算图像中每个像素点到轮廓边缘的距离求解裂缝最大宽度。
我们逐一对以上三种方法加以分析,第①种方法显然是一种近似求解方法,而且只能求解宽度平均值,且无法保证准确度;第②种方法是一种有效的方法,但只能求解最大宽度,且运算量巨大,非常耗时,实时性场合不适用;第③种方法借助轮廓检测方法也是一种较好的方法,但问题是,轮廓与裂缝并不能完全等同,当有多条裂缝交错时,同一条裂缝会被识别成多条轮廓,从而造成误识别,直接导致求解错误,因此,该方法具有一定的局限性。
通过对现有技术做研究分析,发现有的方法不够准确,有的方法性能不好,有的方法难以适应复杂裂缝场景,而且能够测量的尺寸属性有限,很难满足实际业务的要求。
本发明重点要研究的内容是,针对不同的裂缝场景,研究一种通用的裂缝尺寸测量方法,基于图像处理与分析理论,利用图像连通与骨架分析技术,从一副含有裂缝的图像中快速提取出每条裂缝,并求解出裂缝的长度、面积、最小宽度、最大宽度及位置、平均宽度等属性值。
发明内容
针对上述现有技术中识别不够准确、性能不好、难以适应复杂裂痕场景等问题,本发明提供一种基于图像连通与骨架分析的裂缝尺寸测量方法。
本发明是通过如下技术方案实现的:一种基于图像连通与骨架分析的裂缝尺寸测量方法,所述测量方法为:
步骤S1:加载一张含有裂缝的场景彩色图像img_src,对彩色图像img_src进行预处理、裂缝分割,检测出彩色图像img_src中的裂缝连通图和裂缝连通图的数量graph_count;
步骤S2:遍历每条裂缝连通图,将循环变量i置为0,计算第i条裂缝连通图的裂缝面积,过滤掉裂缝面积较小的裂缝连通图;
步骤S3:创建与预处理后的彩色图像img_src相同矩形形状和大小的新图curt_graph,并依据裂缝连通图对新图curt_graph进行标识,背景像素值为0、裂缝像素值为1;
步骤S4:基于标识后的curt_graph提取骨架skel;
步骤S5:对标识后的curt_graph内所有像素点进行欧几里德距离变换,形成一个与骨架skel相同矩阵形状大小、数据类型为float的距离变换矩阵dist;
步骤S6:创建一个与距离变换矩阵dist具有相同矩阵形状大小、相同数据类型、且数据全为0的矩阵skel_dist;遍历骨架skel中每一个元素,将元素值为True的对应位置的距离变换矩阵dist的距离变换值提取出来,赋值给对应位置的矩阵skel_dist;
步骤S7:以赋值后的矩阵skel_dist为数据基础,通过对矩阵数据的集合运算计算进而求得裂缝最小宽度、裂缝平均宽度、裂缝最大宽度及裂缝最大宽度的位置信息;
步骤S8:通过对骨架skel上所有像素点数量求和,计算得到裂缝长度及裂缝面积;
步骤S9:依据求得的裂缝骨架、裂缝最大宽度、裂缝最大宽度的位置信息,在彩色图像img_src上绘制出骨架线条,在最大裂缝宽度位置绘制出最大内接圆,在内接圆邻近位置标注裂缝编号及宽度值;
步骤S10:循环变量i自增1,若i<graph_count,则循环执行步骤S2,直到i≥graph_count,则结束循环;
步骤S11:以上循环结束后,完成图像裂缝可视化标记,保存图像文件。
其中,所述步骤S1中预处理、裂缝分割的方法具体为:
步骤S101:对彩色图像img_src进行灰度处理,得到灰度图像img_gray;
步骤S102:以孔径尺寸ksize为7的正方形结构元素为掩码,采用中值滤波算法对灰度图像img_gray进行模糊处理,得到图像img_medianblur;此处,采用中值滤波算法对灰度图像img_gray进行模糊处理,使图像背景更平滑并浑为一体,增大裂缝与背景的反差,便于后续二值化处理;
步骤S103:对图像img_medianblur采用三角算法确定最佳阈值,并进行图像二值化,得到二值化图像img_bin;
步骤S104:对二值图像img_bin进行前景及背景修正,以白色为裂缝,黑色为背景,并对整幅二值图像img_bin的像素值占比进行统计,若白色像素居多,则对二值图像img_bin取反;
步骤S105:以边长为3的正方形结构元素为掩码,以正方形的中心为锚点,对二值图像img_bin进行形态学闭操作,消除裂缝内的小黑空洞噪点,处理后得到图像img_close;
步骤S107:以边长为3的正方形结构元素为掩码,以正方形的中心为锚点,对二值图像img_close进行形态学开操作,消除裂缝外的小白斑块噪点,处理后得到图像img_open;
步骤S108:从二值图像img_open中检测所有的裂缝连通图,给每条裂缝连通图打上不同标签,同一条裂缝连通图内的像素值为相同标签值;通过对每一条裂缝连通图内所有像素点数量求和计算裂缝连通图的面积,统计裂缝连通图的数量graph_count。
进一步地,所述步骤S108中,从二值图像img_open中检测裂缝连通图的方法具体为:
S1081:准备遍历二值图像img_open每一个像素点,将循环变量j置为0,将裂缝连通图标号k置为1;
S1082:如果第j个像素值不为255,则执行S1083,否则,将第j个像素值标记为k,判断其8邻域像素值如果为255则标记为k,继续对8邻域中值为k的像素的8邻域的像素值进行判断,如果为255则标记为k;以此类推,直到所有邻域的值都没有等于255的,则一条连通图遍历结束,将裂缝连通图标号k自增1;
S1083:将循环变量j自增1,判断k的值如果小于二值图像img_open的像素总数PT,则循环执行S1082,直到j的值大于等于PT结束循环。
其中,所述步骤S2具体为:
步骤S201:准备遍历每条裂缝连通图并测量裂缝尺寸,将循环变量i置为0,设置最小连通图面积MIN_AREA,设置每像素的实际尺寸值MM_PERPIXEL;
步骤S202:读取第i条裂缝连通图的信息;
步骤S203:计算第i条裂缝连通图的面积,若小于最小连通图面积MIN_AREA,则循环变量i加1,执行步骤S202。
其中,所述步骤S4具体为:
采用细化数字图案算法,对标识后的curt_graph提取骨架skel,骨架skel为一矩阵、且与curt_graph具有相同矩阵形状大小、数据类型为bool型;其中,骨架skel中每个像素点位置,若为骨架,则该像素点的值为True,否则该像素点的值为False。
其中,所述步骤S5具体为:
遍历当前裂缝连通图内所有像素点,计算该像素点到背景的最小距离,并将该距离的数值记录到该像素点;遍历完毕后,形成一个与骨架skel具有相同矩阵形状大小、数据类型为float的距离变换矩阵dist。
其中,所述步骤S7具体为:
以赋值后的矩阵skel_dist为数据基础,通过对矩阵数据的集合运算计算求得最小距离、平均距离、最大距离及位置索引;裂缝最小宽度为最小距离的2倍,平均宽度为平均距离的2倍,最大宽度为最大距离的2倍。以上都为像素尺寸,需要乘以每像素的实际尺寸MM_PERPIXEL以换算成裂缝的实际尺寸。
其中,所述步骤S8具体为:
通过对骨架skel上所有像素点数量求和,计算得到裂缝长度,乘以MM_PERPIXEL换算成裂缝的实际长度;裂缝面积对应裂缝连通图的面积,该面积乘以每像素的实际尺寸MM_PERPIXEL的平方换算成裂缝的实际面积。
本发明的有益效果是:本发明可以用于多种场景的裂缝尺寸测量,具有应用范围广、适应性强、测量准确、消耗算力小、运行效率高等特点。
附图说明
图1为本发明实施例1和2的裂缝尺寸测量方法流程图。
图2为本发明实施例2中含有裂缝的彩色图像示例。
图3为本发明实施例2中灰度图像。
图4为本发明实施例2的中值滤波后的图像。
图5为本发明实施例2中二值化图像。
图6为本发明实施例2中背景修正后的二值化图像。
图7为本发明实施例2中形态学闭操作后的图像。
图8为本发明实施例2中形态学开操作后的图像。
图9为本发明实施例2中裂缝连通图。
图10为本发明实施例2中筛选较大的裂缝连通图。
图11为本发明实施例2中裂缝骨架图。
图12为本发明实施例2中中心像素点与其八邻域编号及位置关系。
图13为本发明实施例2中三种不能删除的特殊像素点。
图14为本发明实施例2中中心像素点的八邻域由0变为1的八种情况。
图15为本发明实施例2中裂缝连通图矩阵变换。
图16为本发明实施例2中裂缝连通图与骨架合成图。
图17为本发明实施例2中裂缝标记图。
图18为本发明验证性测试中沥青路面一裂缝标记图。
图19为本发明验证性测试中沥青路面二裂缝标记图。
图20为本发明验证性测试中水泥地坪裂缝标记图。
图21为本发明验证性测试中水泥地面裂缝标记图。
图22为本发明验证性测试中地板裂缝标记图。
图23为本发明验证性测试中水泥路面裂缝标记图。
图24为本发明验证性测试中石英石裂缝标记图。
图25为本发明验证性测试中人造石裂缝标记图。
图26为本发明验证性测试中土地裂缝标记图。
图27为本发明验证性测试中混凝土裂缝标记图。
具体实施方式
本发明通过对原图像进行灰度处理,采用中值滤波模糊、平滑图像背景,采用三角算法确定最佳阈值并进行图像二值化,二值图像以白色为裂缝、黑色为背景。再对二值图像经过形态学闭操作消除裂缝内的小黑空洞噪点,再经过形态学开操作消除裂缝外的小白斑块噪点。至此,完成图像预处理及裂缝分割。然后,检测每条裂缝连通图,标记每条裂缝,通过对连通图内所有像素点数量求和计算连通图的面积。遍历每条裂缝连通图,过滤掉面积较小的连通图。提取一条连通图,标识背景像素为0,裂缝像素为1。采用一种细化数字图案的算法提取图像的骨架,对连通图内所有像素点进行欧几里德距离变换。从计算得到的连通图的距离变换矩阵中抽取骨架上像素点的距离变换值。以骨架距离变换值为基础数据,计算求得最小距离、平均距离、最大距离及位置索引。对骨架上所有像素点数量求和,计算得到裂缝长度。连通图的面积即为裂缝面积。依据求得的骨架、最大裂缝宽度、最大裂缝位置信息,在原图像上绘制骨架线,在最大裂缝宽度位置绘制最大内接圆,在内接圆邻近位置标注裂缝编号及宽度值,完成图像裂缝可视化标记后保存图像文件。
为能清楚说明本方案的技术特点,下面通过具体实施方式,对本方案进行阐述。
实施例一
参见图1,本发明实施例提供了一种基于图像连通与骨架分析的裂缝尺寸测量方法,该测量方法具体为:
步骤S1:加载一张含有裂缝的场景彩色图像img_src,对彩色图像img_src进行预处理、裂缝分割,检测出彩色图像img_src中的裂缝连通图和裂缝连通图的数量graph_count;
步骤S2:遍历每条裂缝连通图,将循环变量i置为0,计算第i条裂缝连通图的裂缝面积,过滤掉裂缝面积较小的裂缝连通图;
步骤S3:创建与预处理后的彩色图像img_src相同矩形形状和大小的新图curt_graph,并依据裂缝连通图对新图curt_graph进行标识,背景像素值为0、裂缝像素值为1;
步骤S4:基于标识后的curt_graph提取骨架skel;
步骤S5:对标识后的curt_graph内所有像素点进行欧几里德距离变换,形成一个与骨架skel相同矩阵形状大小、数据类型为float的距离变换矩阵dist;
步骤S6:创建一个与距离变换矩阵dist具有相同矩阵形状大小、相同数据类型、且数据全为0的矩阵skel_dist;遍历骨架skel中每一个元素,将元素值为True的对应位置的距离变换矩阵dist的距离变换值提取出来,赋值给对应位置的矩阵skel_dist;
步骤S7:以赋值后的矩阵skel_dist为数据基础,通过对矩阵数据的集合运算计算进而求得裂缝最小宽度、裂缝平均宽度、裂缝最大宽度及裂缝最大宽度的位置信息;
步骤S8:通过对骨架skel上所有像素点数量求和,计算得到裂缝长度及裂缝面积;
步骤S9:依据求得的裂缝骨架、裂缝最大宽度、裂缝最大宽度的位置信息,在彩色图像img_src上绘制出骨架线条,在最大裂缝宽度位置绘制出最大内接圆,在内接圆邻近位置标注裂缝编号及宽度值;
步骤S10:循环变量i自增1,若i<graph_count,则循环执行步骤S2,直到i≥graph_count,则结束循环;
步骤S11:以上循环结束后,完成图像裂缝可视化标记,保存图像文件。
其中,步骤S1中预处理、裂缝分割的方法具体为:
步骤S101:对彩色图像img_src进行灰度处理,得到灰度图像img_gray;
步骤S102:以孔径尺寸ksize为7的正方形结构元素为掩码,采用中值滤波算法对灰度图像img_gray进行模糊处理,得到图像img_medianblur;此处,采用中值滤波算法对灰度图像img_gray进行模糊处理,使图像背景更平滑并浑为一体,增大裂缝与背景的反差,便于后续二值化处理;
步骤S103:对图像img_medianblur采用三角算法确定最佳阈值,并进行图像二值化,得到二值化图像img_bin;
步骤S104:对二值图像img_bin进行前景及背景修正,以白色为裂缝,黑色为背景,并对整幅二值图像img_bin的像素值占比进行统计,若白色像素居多,则对二值图像img_bin取反;
步骤S105:以边长为3的正方形结构元素为掩码,以正方形的中心为锚点,对二值图像img_bin进行形态学闭操作,消除裂缝内的小黑空洞噪点,处理后得到图像img_close;
步骤S107:以边长为3的正方形结构元素为掩码,以正方形的中心为锚点,对二值图像img_close进行形态学开操作,消除裂缝外的小白斑块噪点,处理后得到图像img_open;
步骤S108:从二值图像img_open中检测所有的裂缝连通图,给每条裂缝连通图打上不同标签,同一条裂缝连通图内的像素值为相同标签值;通过对每一条裂缝连通图内所有像素点数量求和计算裂缝连通图的面积,统计裂缝连通图的数量graph_count。
进一步地,步骤S108中,从二值图像img_open中检测裂缝连通图的方法具体为:
S1081:准备遍历二值图像img_open每一个像素点,将循环变量j置为0,将裂缝连通图标号k置为1;
S1082:如果第j个像素值不为255,则执行S1083,否则,将第j个像素值标记为k,判断其8邻域像素值如果为255则标记为k,继续对8邻域中值为k的像素的8邻域的像素值进行判断,如果为255则标记为k;以此类推,直到所有邻域的值都没有等于255的,则一条连通图遍历结束,将裂缝连通图标号k自增1;
S1083:将循环变量j自增1,判断k的值如果小于二值图像img_open的像素总数PT,则循环执行S1082,直到j的值大于等于PT结束循环。
其中,步骤S2具体为:
步骤S201:准备遍历每条裂缝连通图并测量裂缝尺寸,将循环变量i置为0,设置最小连通图面积MIN_AREA,设置每像素的实际尺寸值MM_PERPIXEL;
步骤S202:读取第i条裂缝连通图的信息;
步骤S203:计算第i条裂缝连通图的面积,若小于最小连通图面积MIN_AREA,则循环变量i加1,执行步骤S202。
其中,步骤S4具体为:
采用细化数字图案算法,对标识后的curt_graph提取骨架skel,骨架skel为一矩阵、且与curt_graph具有相同矩阵形状大小、数据类型为bool型;其中,骨架skel中每个像素点位置,若为骨架,则该像素点的值为True,否则该像素点的值为False。
其中,步骤S5具体为:
遍历当前裂缝连通图内所有像素点,计算该像素点到背景的最小距离,并将该距离的数值记录到该像素点;遍历完毕后,形成一个与骨架skel具有相同矩阵形状大小、数据类型为float的距离变换矩阵dist。
其中,步骤S7具体为:
以赋值后的矩阵skel_dist为数据基础,通过对矩阵数据的集合运算计算求得最小距离、平均距离、最大距离及位置索引;裂缝最小宽度为最小距离的2倍,平均宽度为平均距离的2倍,最大宽度为最大距离的2倍。以上都为像素尺寸,需要乘以每像素的实际尺寸MM_PERPIXEL以换算成裂缝的实际尺寸。
其中,步骤S8具体为:
通过对骨架skel上所有像素点数量求和,计算得到裂缝长度,乘以MM_PERPIXEL换算成裂缝的实际长度;裂缝面积对应裂缝连通图的面积,该面积乘以每像素的实际尺寸MM_PERPIXEL的平方换算成裂缝的实际面积。
实施例二
参见图1-图27,本发明实施例提供了一种基于图像连通与骨架分析的裂缝尺寸测量方法,包括如下步骤:
S1:加载一张含有裂缝的彩色图像img_src(见图2):
S2:对图像img_src进行灰度处理,得到灰度图像img_gray(见图3);
S3:以孔径尺寸ksize为7的正方形结构元素为掩码,采用中值滤波算法对灰度图像img_gray进行模糊处理,使图像背景更平滑并浑为一体,增大裂缝与背景的反差,便于后续二值化处理,经过中值滤波后得到图像img_medianblur(见图4);
S4:对中值滤波图像img_medianblur采用三角算法确定最佳阈值,并进行图像二值化,得到二值化图像img_bin(见图5);
S5,对二值图像img_bin进行前景及背景修正,具体为:为了保证后续的图像处理过程正确进行,我们需要统一二值图像中裂缝与背景的定义,设定以白色为裂缝,黑色为背景。我们假定一副图像在通常情况下是背景像素居多的,基于此原则,对整幅二值图像像素值占比进行统计,如果发现白色像素居多,则对二值图像取反(见图6);
S6:以边长为3的正方形结构元素为掩码,以正方形的中心为锚点,对二值图像img_bin进行形态学闭操作,消除裂缝内的小黑空洞噪点,处理后得到图像img_close(见图7);
S7:以边长为3的正方形结构元素为掩码,以正方形的中心为锚点,对二值图像img_close进行形态学开操作,消除裂缝外的小白斑块噪点,处理后得到图像img_open(见图8);
S8:从二值图像img_open中检测所有的裂缝连通图,给每条裂缝连通图打上不同标签,同一条裂缝连通图内的像素值都为相同标签值。通过对每一条裂缝连通图内所有像素点数量求和计算连通图的面积。检测得到裂缝连通图的数量graph_count。为了便于观察(并非算法需要),将裂缝连通图用彩色标记,得到彩色的裂缝连通图(见图9);
进一步,S8所述的裂缝连通图检测算法具体如下:
S81:准备遍历二值图像每一个像素点,将循环变量j置为0,将连通图标号k置为1。
S82:如果第j个像素值不为255,则执行S83,否则,将第j个像素值标记为k,判断其8邻域像素值如果为255则标记为k,继续对8邻域中值为k的像素的8邻域的像素值进行判断,如果为255则标记为k。以此类推,直到所有邻域的值都没有等于255的,则一条连通图遍历结束,将连通图标号k自增1;
S83:将循环变量j自增1,判断k的值如果小于二值图像img_open的像素总数PT,则循环执行S82,直到j的值大于等于PT结束循环;
S9:准备遍历每条裂缝连通图测量裂缝尺寸,将循环变量i置为0,设置最小连通图面积MIN_AREA,设置每像素的实际尺寸值(单位毫米)MM_PERPIXEL,该值可根据具体的拍摄场景,拍摄已知尺寸的参照物,再用参照物的实际长度值除以图像中该参照物同一方向的像素数量确定;
S10:读取第i条裂缝连通图的信息;
S11:过滤掉面积较小的连通图(见图10),具体为:判断第i条裂缝连通图的面积是否小于最小连通图面积MIN_AREA,如果小于MIN_AREA,则循环变量i加1,执行S10;
S12:抽取第i条裂缝连通图,创建与二值图像img_bin具有相同矩阵形状大小的新图curt_graph,并标识背景像素值为0,当前裂缝像素值为1;
S13:对标识后的curt_graph采用一种细化数字图案的算法提取图像的骨架skel(见图11)。该骨架是一个矩阵,且与二值图curt_graph具有相同矩阵形状大小,数据类型为bool型。对于骨架skel的每个像素点位置,如果是骨架,则该像素点的值为True,否则该像素点的值为False;
进一步,S13所述的一种细化数字图案的算法是一种基于图像八邻域的并行细化算法,通过对目标像素点及其八邻域进行逻辑条件判断,将符合条件的目标像素进行移除,通过反复循环迭代,直到没有可以删除的像素为止。最后,在保留原有连通图形状的情况下,将图像细化为具有一个像素宽度的骨架。
进一步,判断一个像素点是否可以从前景中移除,是通过判断中心点与其八邻域的各种连通关系为依据的,八邻域的编号及位置关系见图12(其中,图12(a)为中心像素点P1及其8邻域的编号,图12(b)为8邻域与中心像素点的位置关系)。这种移除前景像素点的操作需要对像素值为1的点反复循环进行,一次循环需要进行两次迭代,每次迭代后再执行移除操作,两次迭代时判断移除像素点的条件有所不同,具体如下:
迭代一的判断条件,满足以下五个条件可将P1置为0:
(1)P1的像素值为1;
(2)中心点不是孤点、端点、内点(见图13,其中,图13(a)为孤点、图13(b)端点、图13(c)内点),也就是说,八邻域的像素之和不能小于2,也不能大于6,逻辑表达式为:
(3)八邻域顺时针方向变化一周,像素从0变为1的次数为1(八种情况见图14)
(4)八邻域之P2,P4,P6中至少其中一个像素为零,逻辑表达式为:
P2×P4×P6=0
(5)八邻域之P4,P6,P8中至少其中一个像素为零,逻辑表达式为:
P4×P6×P8=0
迭代二的判断条件,满足以下五个条件可将P1置为0:
(1)P1的像素值为1;
(2)中心点不是孤点、端点、内点(三种情况见图13),也就是说,八邻域的像素之和不能小于2,也不能大于6,逻辑表达式为:
(3)八邻域顺时针方向变化一周,像素从0变为1的次数为1(八种情况见图14)
(4)八邻域之P2,P4,P8中至少其中一个像素为零,逻辑表达式为:
P2×P4×P8=0
(5)八邻域之P2,P6,P8中至少其中一个像素为零,逻辑表达式为:
P2×P6×P8=0
进一步,完整的图像细化算法具体如下:
S131:从curt_graph复制一个副本skel,从skel中提取所有前景像素值为1的像素坐标位置保存到列表list_foreground中,目的是为了只遍历前景像素值为1的像素,提高速度。创建空列表对象list_iter1、list_iter2,用于缓存迭代过程中待移除的像素点坐标;
S132:循环移除不必要的前景像素点。具体为:清空列表对象list_iter1、list_iter2。执行第一次迭代,遍历列表list_foreground,从中提取每一个前景像素值为1的坐标,依照迭代一的判断条件进行逻辑判断,对于满足移除条件的像素点,将其坐标暂存到列表对象list_iter1中,同时从列表list_foreground中移除对应像素坐标。第一次迭代完成后,遍历列表对象list_iter1,从中提取每一个待移除的像素点坐标,将图skel中对应像素位置的值置为0。如果列表对象list_iter1为空,则再无可移除像素,退出循环,否则执行第二次迭代,遍历列表list_foreground,从中提取每一个前景像素值为1的坐标,依照迭代二的判断条件进行逻辑判断,对于满足移除条件的像素点,将其坐标暂存到列表对象list_iter2中,同时从列表list_foreground中移除对应像素坐标。第二次迭代完成后,遍历列表对象list_iter2,从中提取每一个待移除的像素点坐标,将图skel中对应像素位置的值置为0。如果列表对象list_iter2为空,则再无可移除像素,退出循环,否则循环执行S132。
S133:将skel的数据类型转换为bool型,其中0转换为False,1转换为True。
S14:对标识后curt_graph内所有像素点进行欧几里德距离变换,具体为:遍历当前连通图内所有像素点,计算该像素点到背景的最小距离,将该距离的数值记录到该像素点。遍历完毕后,形成一个与二值图skel具有相同矩阵形状大小,数据类型为float的距离变换矩阵dist。为了便于观察,将dist归一化到0~255之间的数值,生成一副矩阵变换图,图中亮度高的地方代表裂缝的中心轴线;(见图15)
进一步,对像素点到背景的最小距离计算公式说明如下:假设连通图内p点坐标为:(x1,y1),距离p点最近的背景q点坐标为:(y1,y2),则p点与q点的欧几里德距离d的公式如下:
S15:从当前裂缝连通图的距离变换矩阵dist中抽取裂缝骨架上像素点的距离变换值,具体为:创建一个与距离变换矩阵dist具有相同矩阵形状大小,相同数据类型,数据全为零的矩阵skel_dist。遍历骨架skel中每一个元素,将元素值为True的对应位置的距离变换矩阵dist的值提取出来,赋值给对应位置的矩阵skel_dist;(见图16)
S16:以骨架距离变换矩阵skel_dist为数据基础,通过对矩阵数据的集合运算计算求得裂缝最小宽度、裂缝平均宽度、裂缝最大宽度及裂缝最大宽度的位置信息。裂缝最小宽度为最小距离的2倍,平均宽度为平均距离的2倍,最大宽度为最大距离的2倍。以上都为像素尺寸,需要乘以每像素的实际尺寸MM_PERPIXEL换算成裂缝的实际尺寸;
S17:通过对骨架skel上所有像素点数量求和,计算得到裂缝长度,乘以MM_PERPIXEL换算成裂缝的实际长度。裂缝面积对应裂缝连通图的面积,该面积乘以每像素的实际尺寸MM_PERPIXEL的平方换算成裂缝的实际面积;
S18:依据求得的裂缝骨架、裂缝最大宽度、裂缝最大宽度的位置信息,在原图像img_src上绘制骨架线条,在最大裂缝宽度位置绘制最大内接圆,在内接圆邻近位置标注裂缝编号及宽度值,得到裂缝标记图(见图17);
S19:循环变量i自增1,判断i的值如果小于裂缝连通图的数量graph_count,则循环执行S10,直到i的值大于等于graph_count结束循环;
S20:以上循环结束后,测量得到全部裂缝尺寸(见表1),完成图像裂缝可视化标记,保存图像文件。
表1裂缝尺寸表(对应图17)
验证性测试及分析
实验目的是为了评估本发明中算法的性能,通过Python3.9实现了本算法,运行环境是:处理器(Inter(R)core(TM)i7-4500U 1.8GHz)、内存(8GB RAM)、操作系统(Windows10 64位)。
所用的图像全部来自互联网收集。共选用了10副有代表性的图像,涵盖了沥青路面、水泥、地板、石材、混凝土、土地等多种场景的裂缝。采用本发明的裂缝尺寸测量方法,运算得到10张裂缝标记图像(图18-图27)。通过观察裂缝标记,裂缝骨架被清晰标记,裂缝最宽处绘制了蓝色的最大内接圆,每条裂缝标明了编号和最大直径。裂缝的详细尺寸用表格呈现(见表2-表11)。实测在上述CPU环境下处理速度为0.5s/张。
以下表2-表11为列举的10副图像的裂缝尺寸表:
表2裂缝尺寸表(对应图18)
表3裂缝尺寸表(对应图19)
表4裂缝尺寸表(对应图20)
表5裂缝尺寸表(对应图21)
表6裂缝尺寸表(对应图22)
表7裂缝尺寸表(对应图23)
表8裂缝尺寸表(对应图24)
表9裂缝尺寸表(对应图25)
表10裂缝尺寸表(对应图26)
表11裂缝尺寸表(对应图27)
在本发明创造的描述中,前面的详细描述已经通过使用框图、流程图和/或示例阐述了装置和/或过程的各种实施例。在这样的框图、流程图和/或示例包含一个或多个功能和/或操作的程度上,本领域技术人员将理解的是,这样的框图、流程图或示例内的每个功能和/或操作可通过许多各种不同的硬件、软件、固件或实际上它们的任何组合被单独地和/或集体地实现。
在系统的各方面的硬件和软件实施方式之间几乎没有差别;硬件或软件的使用通常是(但并不总是,因为在某些情景中在硬件和软件之间的选择可能变得重要)代表成本与效率折衷的设计选择。存在本文中所述的过程和/或系统和/或其它技术可借以被实现的各种手段(例如,硬件、软件和/或固件),并且优选的手段将随着其中过程和/或系统和/或其它技术被部署的情景的不同而改变。例如,如果实施者确定速度和准确性是极为重要的,那么实施者可选择主要为硬件和/或固件的手段;如果灵活性是极为重要的,那么实施者可选择主要为软件的实施方式;或者,但同样可替换地,实施者可选择硬件、软件和/或固件的某组合。
术语“第一”、“第二”等仅用于描述目的,而不能理解为指示或暗示相对重要性或者隐含指明所指示的技术特征的数量。由此,限定有“第一”、“第二”等的特征可以明示或者隐含地包括一个或者更多个该特征。在本发明创造的描述中,除非另有说明,“多个”的含义是两个或两个以上。
本发明未经描述的技术特征可以通过或采用现有技术实现,在此不再赘述,当然,上述说明并非是对本发明的限制,本发明也并不仅限于上述举例,本技术领域的普通技术人员在本发明的实质范围内所做出的变化、改型、添加或替换,也应属于本发明的保护范围。
在本发明创造的描述中,需要说明的是,除非另有明确的规定和限定,术语“安装”、“相连”、“连接”、“设置”应做广义理解,例如,可以是固定连接,也可以是可拆卸连接,或一体地连接;可以是机械连接,也可以是电连接;可以是直接相连,也可以通过中间媒介间接相连,可以是两个元件内部的连通。对于本领域的普通技术人员而言,可以通过具体情况理解上述术语在本发明创造中的具体含义。
以上所述仅为本发明的较佳实施例,并不用以限制本发明,凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。
Claims (8)
1.一种基于图像连通与骨架分析的裂缝尺寸测量方法,其特征在于,所述测量方法为:
步骤S1:加载一张含有裂缝的场景彩色图像img_src,对彩色图像img_src进行预处理、裂缝分割,检测出彩色图像img_src中的裂缝连通图和裂缝连通图的数量graph_count;
步骤S2:遍历每条裂缝连通图,将循环变量i置为0,计算第i条裂缝连通图的裂缝面积,过滤掉裂缝面积较小的裂缝连通图;
步骤S3:创建与预处理后的彩色图像img_src相同矩形形状和大小的新图curt_graph,并依据裂缝连通图对新图curt_graph进行标识,背景像素值为0、裂缝像素值为1;
步骤S4:基于标识后的curt_graph提取骨架skel;
步骤S5:对标识后的curt_graph内所有像素点进行欧几里德距离变换,形成一个与骨架skel相同矩阵形状大小、数据类型为float的距离变换矩阵dist;
步骤S6:创建一个与距离变换矩阵dist具有相同矩阵形状大小、相同数据类型、且数据全为0的矩阵skel_dist;遍历骨架skel中每一个元素,将元素值为True的对应位置的距离变换矩阵dist的距离变换值提取出来,赋值给对应位置的矩阵skel_dist;
步骤S7:以赋值后的矩阵skel_dist为数据基础,通过对矩阵数据的集合运算计算进而求得裂缝最小宽度、裂缝平均宽度、裂缝最大宽度及裂缝最大宽度的位置信息;
步骤S8:通过对骨架skel上所有像素点数量求和,计算得到裂缝长度及裂缝面积;
步骤S9:依据求得的裂缝骨架、裂缝最大宽度、裂缝最大宽度的位置信息,在彩色图像img_src上绘制出骨架线条,在最大裂缝宽度位置绘制出最大内接圆,在内接圆邻近位置标注裂缝编号及宽度值;
步骤S10:循环变量i自增1,若i<graph_count,则循环执行步骤S2,直到i≥graph_count,则结束循环;
步骤S11:以上循环结束后,完成图像裂缝可视化标记,保存图像文件。
2.根据权利要求1所述的方法,其特征在于,所述步骤S1中预处理、裂缝分割的方法具体为:
步骤S101:对彩色图像img_src进行灰度处理,得到灰度图像img_gray;
步骤S102:以孔径尺寸ksize为7的正方形结构元素为掩码,采用中值滤波算法对灰度图像img_gray进行模糊处理,得到图像img_medianblur;
步骤S103:对图像img_medianblur采用三角算法确定最佳阈值,并进行图像二值化,得到二值化图像img_bin;
步骤S104:对二值图像img_bin进行前景及背景修正,以白色为裂缝,黑色为背景,并对整幅二值图像img_bin的像素值占比进行统计,若白色像素居多,则对二值图像img_bin取反;
步骤S105:以边长为3的正方形结构元素为掩码,以正方形的中心为锚点,对二值图像img_bin进行形态学闭操作,消除裂缝内的小黑空洞噪点,处理后得到图像img_close;
步骤S107:以边长为3的正方形结构元素为掩码,以正方形的中心为锚点,对二值图像img_close进行形态学开操作,消除裂缝外的小白斑块噪点,处理后得到图像img_open;
步骤S108:从二值图像img_open中检测所有的裂缝连通图,给每条裂缝连通图打上不同标签,同一条裂缝连通图内的像素值为相同标签值;通过对每一条裂缝连通图内所有像素点数量求和计算裂缝连通图的面积,统计裂缝连通图的数量graph_count。
3.根据权利要求2所述的方法,其特征在于,所述步骤S108中,从二值图像img_open中检测裂缝连通图的方法具体为:
S1081:准备遍历二值图像img_open每一个像素点,将循环变量j置为0,将裂缝连通图标号k置为1;
S1082:如果第j个像素值不为255,则执行S1083,否则,将第j个像素值标记为k,判断其8邻域像素值如果为255则标记为k,继续对8邻域中值为k的像素的8邻域的像素值进行判断,如果为255则标记为k;以此类推,直到所有邻域的值都没有等于255的,则一条连通图遍历结束,将裂缝连通图标号k自增1;
S1083:将循环变量j自增1,判断k的值如果小于二值图像img_open的像素总数PT,则循环执行S1082,直到j的值大于等于PT结束循环。
4.根据权利要求1所述的方法,其特征在于,所述步骤S2具体为:
步骤S201:准备遍历每条裂缝连通图并测量裂缝尺寸,将循环变量i置为0,设置最小连通图面积MIN_AREA,设置每像素的实际尺寸值MM_PERPIXEL;
步骤S202:读取第i条裂缝连通图的信息;
步骤S203:计算第i条裂缝连通图的面积,若小于最小连通图面积MIN_AREA,则循环变量i加1,执行步骤S202。
5.根据权利要求1所述的方法,其特征在于,所述步骤S4具体为:
采用细化数字图案算法,对标识后的curt_graph提取骨架skel,骨架skel为一矩阵、且与curt_graph具有相同矩阵形状大小、数据类型为bool型;其中,骨架skel中每个像素点位置,若为骨架,则该像素点的值为True,否则该像素点的值为False。
6.根据权利要求1所述的方法,其特征在于,所述步骤S5具体为:
遍历当前裂缝连通图内所有像素点,计算该像素点到背景的最小距离,并将该距离的数值记录到该像素点;遍历完毕后,形成一个与骨架skel具有相同矩阵形状大小、数据类型为float的距离变换矩阵dist。
7.根据权利要求1所述的方法,其特征在于,所述步骤S7具体为:
以赋值后的矩阵skel_dist为数据基础,通过对矩阵数据的集合运算计算求得最小距离、平均距离、最大距离及位置索引;裂缝最小宽度为最小距离的2倍,平均宽度为平均距离的2倍,最大宽度为最大距离的2倍。以上都为像素尺寸,需要乘以每像素的实际尺寸MM_PERPIXEL以换算成裂缝的实际尺寸。
8.根据权利要求1所述的方法,其特征在于,所述步骤S8具体为:
通过对骨架skel上所有像素点数量求和,计算得到裂缝长度,乘以MM_PERPIXEL换算成裂缝的实际长度;裂缝面积对应裂缝连通图的面积,该面积乘以每像素的实际尺寸MM_PERPIXEL的平方换算成裂缝的实际面积。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202211223265.9A CN115578343A (zh) | 2022-10-08 | 2022-10-08 | 一种基于图像连通与骨架分析的裂缝尺寸测量方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202211223265.9A CN115578343A (zh) | 2022-10-08 | 2022-10-08 | 一种基于图像连通与骨架分析的裂缝尺寸测量方法 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN115578343A true CN115578343A (zh) | 2023-01-06 |
Family
ID=84584165
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202211223265.9A Pending CN115578343A (zh) | 2022-10-08 | 2022-10-08 | 一种基于图像连通与骨架分析的裂缝尺寸测量方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN115578343A (zh) |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN117079146A (zh) * | 2023-10-17 | 2023-11-17 | 深圳市城市交通规划设计研究中心股份有限公司 | 一种线性裂缝演化规律分析方法 |
CN117830284A (zh) * | 2024-01-12 | 2024-04-05 | 中国建筑第六工程局有限公司 | 一种混凝土结构表面裂缝检测方法及系统 |
-
2022
- 2022-10-08 CN CN202211223265.9A patent/CN115578343A/zh active Pending
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN117079146A (zh) * | 2023-10-17 | 2023-11-17 | 深圳市城市交通规划设计研究中心股份有限公司 | 一种线性裂缝演化规律分析方法 |
CN117079146B (zh) * | 2023-10-17 | 2024-02-27 | 深圳市城市交通规划设计研究中心股份有限公司 | 一种线性裂缝演化规律分析方法 |
CN117830284A (zh) * | 2024-01-12 | 2024-04-05 | 中国建筑第六工程局有限公司 | 一种混凝土结构表面裂缝检测方法及系统 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN108364280B (zh) | 结构裂缝自动化描绘及宽度精准测量方法与设备 | |
CN112419250B (zh) | 路面裂缝数字图像提取、裂缝修补及裂缝参数计算方法 | |
CN110033516B (zh) | 基于双目相机图像采集识别的针片状颗粒含量检测方法 | |
CN115578343A (zh) | 一种基于图像连通与骨架分析的裂缝尺寸测量方法 | |
CN108759973B (zh) | 一种水位测量方法 | |
WO2018107939A1 (zh) | 一种基于边缘完备度的图像分割最优识别方法 | |
CN112837290B (zh) | 一种基于种子填充算法的裂缝图像自动识别方法 | |
CN105335973B (zh) | 运用于带钢加工生产线的视觉处理方法 | |
CN107092871B (zh) | 基于多尺度多特征融合的遥感影像建筑物检测方法 | |
CN110569857B (zh) | 一种基于质心距离计算的图像轮廓角点检测方法 | |
CN109658391B (zh) | 一种基于轮廓归并和凸包拟合的圆半径测量方法 | |
CN108596165A (zh) | 基于无人机低空航拍图像的道路交通标线检测方法及系统 | |
CN109635733B (zh) | 基于视觉显著性和队列修正的停车场和车辆目标检测方法 | |
JP2014228357A (ja) | ひび割れ検出方法 | |
CN108256467B (zh) | 一种基于视觉注意机制和几何特征的交通标志检测方法 | |
CN112819809B (zh) | 一种岩石中矿物颗粒形态量化方法 | |
CN113643371B (zh) | 一种飞行器模型表面标记点的定位方法 | |
CN110211128B (zh) | 基于遥感影像和dem的黄土高原梯田提取方法 | |
CN114596551A (zh) | 一种车载前视图像裂缝检测的方法 | |
CN103413131A (zh) | 基于光谱及几何特征的塔吊识别方法 | |
CN113435452A (zh) | 一种基于改进ctpn算法的电气设备铭牌文本检测方法 | |
CN109544513A (zh) | 一种钢管端面缺陷提取识别的方法 | |
CN115597494A (zh) | 一种基于点云的预制构件预留孔的精度检测方法、系统 | |
CN108648200B (zh) | 一种间接的城市高分辨率不透水面提取方法 | |
CN118212179A (zh) | 一种复杂背景的角度检测方法 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination |