布料表面缺陷检测-检测周期纹理图像的缺陷(附halcon代码)
对于有周期纹理的布料检测而言,因为缺陷部位很容易与纹理混合在一起,无疑增加了检测难度。在经过了傅里叶变换的图像上使用正弦形态的带通滤波器,能有效降低周期纹理的干扰,突出缺陷区域。经过反傅里叶变换后,使用纹理滤波器提取出缺陷区域。因为纹理和缺陷的灰度差异被“放大”,所以可以使用灰度阈(yu四声)值结合形状的面积特征将二者分离开来。
下图是一块带有纹理的、有染色缺陷的布料图像
将原始图像进行傅里叶变换得到的瑕疵区域形状如下图
提取破洞并标识后如下图
检测的基本原理与前面两个例子相同,区别在于以下几点。
(1)由于原图对比度比较低,因此使用muti_image算子对灰度图像进行乘法运算,增强了原图像的对比度。
(2)由于图像中有周期纹理,而缺陷包含在纹理图案中,因此使用gen_sin_bandpass算子创建一个正弦形状的带通滤波器,用于在傅里叶变换过程中消除背景的纹理图像,能在平滑背景的同时较好地提取出缺陷点。
(3)傅里叶变换还原后,使用纹理滤波器寻找图像中的突变部分,便于将缺陷与背景分割开来。这样就能消除周期纹理对表面缺陷检测的影响,提取出异常的部位了。