Page 39 - 无损检测2025年第二期
P. 39
成志飞,等:
基于传统图像处理的焊缝射线图像缺陷识别方法
是如果结构元素所覆盖的像素区域中的最小值满足
特定条件,则将该像素的值更新为最小值或根据条
件设定的其他值。
进行腐蚀操作后,中间区域的面积进行了缩放,
图 7 引脚延伸过长的图像
因此需要进行腐蚀操作的反操作,即膨胀操作。膨
胀操作会使图像中的目标区域向外扩张,对于每个 判断引脚最底端的位置是否位于初步提取的感兴
像素,膨胀操作会检查结构元素覆盖区域内的像素 趣区域内,如果位于感兴趣区域内,则把引脚区域排除
值,并找到该区域内的最大值,然后该点的像素值会 掉。引脚最底端的坐标位置可通过边缘检测得到。
被更新为这个最大值。这样,通过不断遍历图像中 边缘检测的主要目的是识别并提取图像中亮度
的每个像素,进行膨胀操作,目标区域会向外扩张以 变化剧烈的像素点集合,这些像素点集合构成了图
补偿缩小的部分,膨胀操作的效果同样取决于结构 像的边缘,这些边缘通常代表图像中不同物体或区
元素的大小、形状以及膨胀操作的迭代次数 。腐蚀、 域的边界。边缘检测常用的有Sobel算子、Scharr算
[8]
[9]
膨胀操作处理后的图像如图5所示,其中图5(a)为 子和Canny算子 。
对二值化后的图像进行腐蚀后的图像,图5(b)为对 Sobel算子是一种基于图像空间域卷积的图像
腐蚀后的图像进行膨胀操作后的图像。 梯度提取算子,主要用于获得图像的一阶梯度 [10] ,
Sobel算子提供了水平和垂直两个方向的滤波模板,
可以检测图像在这两个方向上的边缘变化,然而该
算子对边缘的定位可能不够准确,有时会出现边缘
较粗的情况。
Sobel算子两个方向的模板分别为
图 5 腐蚀、膨胀操作处理后的图像 G = -1 0 1 -2 0 2 -1 0 1
;
;
1.6 裁剪区域 G x y = 1 2 1 0 0 0 -1 -2 -1 (2)
;
;
通常感兴趣区域底部到顶部的宽度距离是固定
式中: G x 为Sobel算子在x方向的模版, G x 为3×3的矩
的,因此可以引入宽度的限制条件对区域进行裁剪,
阵; G y 为Sobel算子在y方向的模版, G y 为3×3的矩阵。
先获取图像每行像素值的和,从下向上遍历,找到轮
Scharr算子是基于图像梯度的二阶导数来进行
廓底部边缘的坐标,再向上进行固定宽度的裁剪,最
边缘检测的,其使用两个3×3的卷积核对图像进行
后将裁剪后的轮廓与原图混合叠加,并进行对比,观
滤波,分别计算水平和垂直方向上的梯度,通过计
察感兴趣区域提取效果。裁剪后的掩膜图像及对应
算这些梯度,可以得到图像中每个像素点处的边缘
的原图感兴趣区域初步提取的图像如图6所示。
强度和方向。与Sobel算子相比,Scharr算子在计算
梯度时使用了不同的系数,从而对边缘的响应更加
强烈。
Scharr算子两个方向的模板分别为
H x = -3 0 3 -10 0 10 -3 0 3
;
;
;
;
图 6 裁剪后的掩膜图像及对应的原图感兴趣 H y = -3 -10 -3 0 0 0 3 10 3 (3)
区域初步提取的图像
式中: H x 为Scharr算子在x方向的模版, H x 为3×3
2 感兴趣区域修正
的矩阵; H y 为Scharr算子在 y 方向的模版, H y 为
2.1 引脚延伸过长 3×3的矩阵。
焊缝感兴趣区域的上方会存在类似引脚的细长 Canny算子使用一阶偏导算子计算梯度的大小
型区域,该区域受工艺影响可能会向下延伸,如果 和方向来确定边缘的方向和强度,然后在梯度图像
引脚延伸过长,会把引脚也算入1. 6节所述的初步 上进行非极大值抑制 [11] ;再进行双阈值处理,根据设
提取的感兴趣区域内,而可能导致缺陷识别不准确。 定的高阈值和低阈值,将像素分类为强边缘、弱边缘
引脚延伸过长的图像如图7中标注出的区域所示。 和非边缘,如果像素的梯度大于高阈值,则被视为强
9
2025 年 第 47 卷 第 2 期
无损检测

