文献阅读笔记【5】:基于图像处理的膨胀圆裂缝检测算法


该文章提出了一种计算裂缝宽度的算法,其过程使用了像素圆生成、裂缝骨架图、二值图像加减等操作。现有的裂缝宽度图像常采用法线、平行线等方式计算,但定义复杂。

1.像素圆的定义:

  • 圆形是一种轴对称图形,具有无数条对称轴,其旋转不变性有利于反映裂缝宽度的情况。同时,圆的解析方程是相当成熟而简洁的,因此考虑采用圆作为填充图形,通过圆心、半径、直径等参数反映裂缝参数,进而描述裂缝。

  • 裂缝的宽度可定义为:以裂缝边缘一点为切点的裂缝最大内接圆直径为该处的裂缝宽度。

  • 像素圆:图像坐标系内到某固定坐标的距离小于等于定长的像素集合,像素圆与真实圆稍有不同,随着径在不断增大时,像素圆与实际圆的差异越来越小。

  • 其中像素圆直径为奇数和偶数时定义稍有不同。
    文献阅读笔记【5】:基于图像处理的膨胀圆裂缝检测算法

2.膨胀圆算法:

  • 采用一种使像素圆直径由初始值不断增大进而确定宽度像素圆的方法,并将该算法命名为“膨胀圆法”。
  • 为了简化计算,文章中将像素圆的初始膨胀圆心定为裂缝骨架线坐标集中的一个,每次膨胀计算时从骨架线坐标矩阵中按一定规则抽取。
  • 最大内接像素圆与裂缝一侧相切的交点可能存在多个。
    文献阅读笔记【5】:基于图像处理的膨胀圆裂缝检测算法
    算法描述:
  1. 对裂缝二值图像A提取骨架图;
  2. 从骨架图中按照一定规则抽取一组坐标;
  3. 创建新图像B,B与二值图像A具有相同分辨率,背景为0(黑色),以步骤2中抽取的坐标为圆心生成直径为1的白色像素圆;
  4. 将A与B相加得C,抑制大于1的像素值为1;
  5. 将C图像与A做减法操作,得到差值图像D;
  6. 若D中全部像素为0(黑色),则说明像素圆未超出裂缝边缘,将直径+1(膨胀操作),返回步骤3,重复以上步骤;若第N+1次膨胀后D中出现1(白色),说明像素圆超出裂缝边缘,则结束膨胀,最终膨胀圆直径为N像素,记录圆心和直径参数;
  7. 从骨架线坐标矩阵G中删除该宽度膨胀圆内的坐标点,判断G是否为空,空则结束循环,不空则返回步骤2继续循环计算。
    文献阅读笔记【5】:基于图像处理的膨胀圆裂缝检测算法

Comments:

  • 文章中的方法对于我之后的裂缝宽度的测量研究极具参考意义,可以以参数的方式记录裂缝数据,宽度计算预定位结果较好;
  • 但是具体的操作起来如何选取骨架上的坐标?这个规则并没有具体明确,同时由于像素圆之间不相交,所得出的结果看起来断断续续并不完美。
  • 另外此法面对比较大的裂缝的可操作性很强,但是如果裂缝过于小效果可能有待讨论,毕竟像素圆尺寸越小越不像圆,也就失去了旋转不变性。
  • 从算法复杂度上来看,感觉定义的参数较多,计算并不算简单。
  • 整理来说,该方法区别于传统的法线平行线等方法,方法新颖,以上的“但是”理论上可以通过改进得到更好的效果。