形态学+小波变换进行缺陷检测

简介: 形态学+小波变换进行缺陷检测

前言


  由形态学边缘检测试验可知,形态学是利用缺陷的形态特征,而非缺陷与背景的灰度值差异进行检测,这对灰度直方图变化不大的图像检测有较好的效果。


  然而,单凭形态学并不能达到最佳的检测效果。提出了一种结合形态学和小波变换的边缘检测算法,该算法既包含了形态学中基于缺陷特征的形态学检测的优点,又结合了小波域检测的优点。图像在水平、垂直和对角线方向上分为低频和高频。


低频包含大量信息,改善了传统的单一检测算法难以提取与背景灰度值相近、纹理复杂的图像缺陷,且效果不同的问题。处理、重建,实现边缘检测。




流程说明


  1. 读取图像


  1. 图像预处理


  1. 小波二层分解


4.1.1  低频分量


4.1.2  自适应形态学边缘检测


4.2.1 高频分量


4.2.2 高频滤波


4.3 对4.1.2和4.2.2 进行图像重构


4.4 对重构图像进行缺陷提取



小波图像


  一个图像信号通常由基本的尺度成分与多出的小波成分组成。在小波图像的分解中,对1级低频再进行小波分解,就生成了2级子图像,原图像的n级分解过程中不会增加或减少数据,随着所分的级数越来越高,原图像所分的小波成分越来越多,对于不同分辨率的子图像,高频部分大多数值趋近于0,故包含细节成分,而低频包含图像信息。

image.png上图为对原始图像进行1级与2级小波分解:


(b) 图左上、右上、左下、右下角分别为1级低频成分、水平高频、垂直高频与对角高频图像(所分的高频小波信息不变);


(c) 为对1级低频继续分解的子图像,1级所分的高频小波信息不变,而1级低频信息又分解为2级的 低频尺度信息与2级的高频水平成分、高频垂直成分与高频对角成分。




预处理部分


  频率域处理方法,是根据图像中各部分表现的频率分布不相同决定的,通过滤波函数,将不同频率的分量分别处理,使得部分频率被抑制,而其他频率不被处理,被抑制的频率就被滤去,转换为空间域后,被抑制频率的信息或图像就被去除。


  平滑滤波是是降低高频的部分,同时增强低频的部分,使得图像变得“柔和”,常用的滤波器有理想低通滤波器、巴特沃斯低通滤波器、梯形低通滤波器、指数低通滤波器、高斯低通滤波器等;而锐化滤波相反,增强图像高频的部分,同时降低低频的部分。


  设计滤波器的目的是为了与小波变换融合时能够对分离的变量进行处理,小波分解的低频分量与形态学算子融合,用于去除主要信息中的花纹与背景;而高频分量与滤波器做卷积,是为了去除模糊,加强缺陷的边缘,减小低频的部分,故采用一种高通与同态结合的滤波器。


  高通滤波器属于锐化滤波,其通过衰减低频分量且通过高频分量达到锐化目的,与理想高通滤波器相比,巴特沃斯滤波器衰减低频时更加平缓;同态滤波器是一种特别的方法,其在频率域中通过减少亮度范围,从而提高缺陷轮廓。




小波+形态学


  在空间域中,单独地使用自适应形态学组合进行缺陷检测,经过开、闭等一系列处理后,仅能去除部分的花纹与背景,分离出的缺陷轮廓较浅,且混杂着没有去除的花纹、背景信息,对进一步地分析造成干扰,并不能够很好的提取出。设想将形态学处理作为过程中的一步,将其粗提取的缺陷作为基础,再进一步精提取。


  小波变换是一种能够将高、低频分量分离的方法,将低频分量用设计的形态学算法处理,能更进一步地分离出缺陷,减少其他信息的影响,而对于高频分量,使用改进的巴特沃斯与同态滤波器,在抑制低频分量的同时,锐化轮廓,将各自处理后的分量融合,观察处理的结果。


一级小波分解图:

image.png

二级小波分解图:

image.png


相关文章
|
9月前
|
机器学习/深度学习 传感器 算法
用于准确量化颅面对称性和面部生长的 3D 头影测量方案(Matlab代码实现)
用于准确量化颅面对称性和面部生长的 3D 头影测量方案(Matlab代码实现)
|
机器学习/深度学习 人工智能 数据库
【表面缺陷检测】表面缺陷检测数据集汇总
本文收集整理了16个表面缺陷检测相关的数据集,并对每个数据集的特点进行了简单的介绍。
【表面缺陷检测】表面缺陷检测数据集汇总
|
9月前
|
机器学习/深度学习 传感器 算法
使用显著性检测的可见光和红外图像的两尺度图像融合(Matlab代码实现)
使用显著性检测的可见光和红外图像的两尺度图像融合(Matlab代码实现)
|
11月前
|
数据可视化
使用边缘检测和形态学检测细胞
使用边缘检测和基本形态学检测细胞。如果某对象与背景有足够的对比度,则可以在图像中轻松检测到该对象。
51 0
|
10月前
|
机器学习/深度学习 算法 调度
【图像隐藏】基于小波变换结合SVD分解实现数字水印攻击提取附Matlab代码
【图像隐藏】基于小波变换结合SVD分解实现数字水印攻击提取附Matlab代码
|
10月前
|
编解码 算法 新能源
【扰动识别】S变换电能质量扰动识别(Matlab代码实现)
【扰动识别】S变换电能质量扰动识别(Matlab代码实现)
126 0
|
10月前
|
编解码 算法 数据可视化
【高光谱图像的去噪算法】通过全变异最小化对受激拉曼光谱图像进行去噪研究(Matlab代码实现)
【高光谱图像的去噪算法】通过全变异最小化对受激拉曼光谱图像进行去噪研究(Matlab代码实现)
|
11月前
|
算法
基于高分辨率时频分析的单通道地震数据自动噪声衰减方法(Matlab代码实现)
基于高分辨率时频分析的单通道地震数据自动噪声衰减方法(Matlab代码实现)
|
11月前
|
机器学习/深度学习 存储 运维
使用单类全卷积数据描述异常检测网络检测药丸图像上的缺陷
使用单类全卷积数据描述 (FCDD) 异常检测网络检测药丸图像上的缺陷。
119 0
|
12月前
|
算法
MATLAB实现金属表面缺陷识别和检测(基于相位变换的无监督)
金属板广泛应用在工业生产与生产生活的各方面。由于金属板制造过程涉及到的设备、工艺等多因素的影响,金属板表面容易出现种类较多、形态各异的缺陷,这些缺陷对金属板的耐磨性、抗腐蚀性、电磁特性及美观性都会造成不同程度的影响,最终影响金属板的电磁特性和涂镀效果。因此对于生产金属板的企业来说,表面缺陷检测是必不可少的一个工序,一方面可以通过表面缺陷检测及时检测到缺陷产品,保证所产金属板的质量,维护企业的信誉,另一方面也可以通过分析检测结果及时发现生产过程中存在的问题,并及时解决。我们将依据实验台拍摄的金属表面缺陷照片为实验图片来源,构造相应的算法对金属表面的缺陷进行检测。