基于小波图像去噪的MATLAB实现

1背景

数字图像处理(Digital Image Processing,DIP)是指用计算机辅助技术对图像信号进行处理的过程。数字图像处理最早出现于 20世纪50年代,随着过去几十年来计算机、网络技术和通信的快速发展,为信号处理这个学科领域的发展奠定了基础,使得DIP技术成为信息技术中最重要的学科分支之一。在现实生活中,DIP应用十分广泛,医疗、艺术、军事、航天等图像处理影响着人类生活和工作的各个方面。

然而,在图像的采集、获取、编码和传输的过程中,都存在不同程度被各种噪声所“污染”的现象。如果图像被污染得比较严重,噪声会变成可见的颗粒形状,导致图像质量的严重下降。根据研究表明,当一张图像信噪比(SNR)低于14.2dB 时,图像分割的误检率就高于0.5%,而参数估计的误差高于0.6%。通过一些卓有成效的噪声处理技术后,尽可能地去除图像噪声,我们在从图像中获取信息时就更容易,有利于进一步的对图像进行如特征提取、信号检测和图像压缩等处理。小波变换处理应用于图像去噪外,在其他图像处理领域都有着十分广泛的应用。本论文以小波变换作为分析工具处理图像噪声,研究数字图像的滤波去噪问题,以提高图像质量。

  1. 课题原理

1.小波基本原理

基于小波图像去噪的MATLAB实现_第1张图片

基于小波图像去噪的MATLAB实现_第2张图片

2. 图像去噪综述

所谓噪声,就是指妨碍人的视觉或相关传感器对图像信息进行理解或分析的各种因素。通常噪声是不可预测的随机信号。由于噪声影响图像的输入、采集、处理以及输出的各个环节,尤其是图像输入、采集中的噪声必然影响图像处理全过程乃至最终结果,因此抑制噪声已成为图像处理中极其重要的一个步骤。

依据噪声对图像的影响,可将噪声分为加性噪声和乘性噪声两大类。由于乘性噪声可以通过变换当加性噪声来处理,因此我们一般重点研究加性噪声。设f(x,y)力为理想图像,n(x,y)力为噪声,实际输入图像为为g(x,y),则加性噪声可表示为:

g(x,y)= f(x,y)+ n(x,y), (5)

其中,n(x,y)和图像光强大小无关。

图像去噪的目的就是从所得到的降质图像以g(x,y)中尽可能地去除噪声n(x,y),从而还原理想图像f(x,y)。图像去噪就是为了尽量减少图像的均方误差,提高图像的信噪比,从而尽可能多地保留图像的特征信息。

图像去噪分为时域去噪和频域去噪两种。传统图像去噪方法如维纳滤波、中值滤波等都属于时域去噪方法。而采用傅里叶变换去噪则属于频域去噪。这些方法去噪的依据是一致的,即噪声和有用信号在频域的不同分布。我们知道,有用信号主要分布于图像的低频区域,噪声主要分布在图像的高频区域,但图像的细节信息也分布在高频区域。这样在去除高频区域噪声的同时,难免使图像的一些细节也变得模糊,这就是图像去噪的一个两难问题。因此如何构造一种既能降低图像噪声,又能保留图像细节特征的去噪方法成为图像去噪研究的一个重大课题。

3. 小波阈值去噪法

3.1小波变换去噪的过程

小波去噪是小波变换较为成功的一类应用,其去噪的基本思路可用框图3-1来概括,即带噪信号经过预处理,然后利用小波变换把信号分解到各尺度中,在每一尺度下把属于噪声的小波系数去掉,保留并增强属于信号的小波系数,最后再经过小波逆变换恢复检测信号。

基于小波图像去噪的MATLAB实现_第3张图片

因此,利用小波变换在去除噪声时,可提取并保存对视觉起主要作用的边缘信息。而传统的傅立叶变换去噪方法在去除噪声和边沿保持上存在着矛盾,原因是傅立叶变换方法在时域不能局部化,难以检测到局域突变信号,在去除噪声的同时,也损失了图像边沿信息。由此可见,与傅立叶变换去噪方法相比,小波变换去噪方法具有明显的优越性。

3.2小波阈值去噪的基本方法

3.2.1阈值去噪原理

Donoho提出的小波阈值去噪方法的基本思想是当wj,k小于某个临界阈值时,认为这时的小波系数主要是由噪声引起的,予以舍弃。当wj,k大于这个临界阈值时,认为这时的小波系数主要是由信号引起,那么就把这一部分的wj,k直接保留下来(硬阈值方法),或者按某一个固定量向零收缩(软阈值方法),然后用新的小波系数进行小波重构得到去噪后的信号。此方法可通过以下三个步骤实现:

(1)先对含噪声信号f(t)做小波变换,得到一组小波分解系数wj,k

(2)通过对分解得到的小波系数wj,k进行阈值处理,得出估计小波系数使得wj,k- uj,k,尽可能的小。

(3)利用估计小波系数进行小波重构,得到估计信号了,即为去噪之后的信号。

需要说明的是,在小波阈值去噪法中,最重要的是闭值函数和闲值的选取。

3.2.2阈值函数的选取

阈值函数关系着重构信号的连续性和精度,对小波去噪的效果有很大影响。目前,阈值的选择主要分硬阈值和软阈值两种处理方式。其中,软阈值处理是将信号的绝对值与阈值进行比较,当数据的绝对值小于或等于阈值时,令其为零;大于阈值的数据点则向零收缩,变为该点值与阈值之差。而硬阈值处理是将信号的绝对值阈值进行比较,小于或等于阈值的点变为零,大于阈值的点不变。但硬阈值函数的不连续性使消噪后的信号仍然含有明显的噪声;采用软阈值方法虽然连续性好,但估计小波系数与含噪信号的小波系数之间存在恒定的偏差,当噪声信号很不规则时显得过于光滑。

4、基于小波变换的图像分解与重构

二维离散小波主要解决二维多分辨率分析问题,如一幅二维离散图像{c(m,n)} ,二小波可以将它分解为各层各个分辨率上的近似分量cAj,水平方向细节分量 cHj,垂直方向细节分量cVj,对角线方向细节分量cDj,其二层小波图像

基于小波图像去噪的MATLAB实现_第4张图片

其二层小波图像重构过程正好与此相反如图4-2所示,基于小波变换的图像处理,是通过对图像分解过程中所产生的近似分量与细节分量系数的调整,使重构图像满足特定条件,而实现图像处理。

三、程序实现图像消噪

常用的图像去噪方法是小波阈值去噪法,它是一种实现简单而效果较好的去噪方法,阈值去噪方法的思想很简单,就是对小波分解后的各层稀疏模大于和小于某阈值的系数分别进行处理,然后利用处理后的小波系数重构出去噪后的图像。在阈值去噪中,阈值函数体现了对小波分解稀疏的不同处理策略以及不同的估计方法,常用的阈值函数有硬阈值和软阈值函数,硬阈值函数可以很好的保留图像边缘等局部特征,但图像会出现伪吉布斯效应,等视觉失真现象,而软阈值处理相对较平稳,但可能会出现边缘模糊等失真现象,为此人们又提出了半软阈值函数。小波阈值去噪方法处理阈值的选取,另一个关键因素是阈值的具体估计,如果阈值太小,去噪后的图像仍然存在噪 声,相反如果阈值太大,重要图像特征又将被滤掉,引起偏差。从直观上讲,对给定的小波系数,噪声越大,阈值就越大。

图像信号的小波去噪步骤与一维信号的去噪步骤完全相同,只使用二维小波分析工具代替了一维小波分析工具,如果用固定阈值形式,则选择的阈值用m2代替了一维信号中的n。

这三步是:1)二维信号的小波分解。选择一个小波和小波分解的层次 N, 然后计算信号S到第N层的分解。2)对高频系数进行阈值量化,对于从一到N的每一层,选择一个阈值,并对这一层的高频系数进行软阈值化处理。3)二维小波的重构,根据小波分解的第N层的低频系数和经过修改的从第一层到第N层的高频系数,来计算二维信号的小波重构。下面就通过具体实例来说明利用小波分析进行图像去噪的问题。

对给定图像进行去噪的二维小波去噪源程序:

clear;                 % 清理工作空间
load wbarb;            % 装载原始图像
subplot(221);           % 新建窗口
image(X);              % 显示图像
colormap(map);        % 设置色彩索引图
title('原始图像');       % 设置图像标题
axis square;           % 设置显示比例, 生成含噪图像并图示
init=2055615866;       % 初始值
randn('seed',init);       % 随机值
XX=X+8*randn(size(X));   % 添加随机噪声
subplot(222);             % 新建窗口
image(XX);              % 显示图像
colormap(map);           % 设置色彩索引图
title(' 含噪图像 ');        % 设置图像标题
axis square;           %用小波函数coif2对图像XX进行2层
[c,l]=wavedec2(XX,2,'coif2'); % 分解
n=[1,2];                  % 设置尺度向量
p=[10.28,24.08]; % 设置阈值向量 , 对高频小波系数进行阈
%nc=wthcoef2('h',c,l,n,p,'s');
%nc=wthcoef2('v',c,l,n,p,'s');
X1=waverec2(nc,l,'coif2');   % 图像的二维小波重构
subplot(223);              % 新建窗口
image(X1);                % 显示图像
colormap(map);            % 设置色彩索引图
title(' 第一次消噪后的图像 ');  % 设置图像标题
axis square; %设置显示比例,再次对高频小波系数进行阈值处理
%mc=wthcoef2('h',nc,l,n,p,'s');mc=wthcoef2('v',nc,l,n,p,'s');
%mc=wthcoef2('d',nc,l,n,p,'s');
X2=waverec2(mc,l,'coif2');  % 图像的二维小波重构
subplot(224);             % 新建窗口
image(X2);               % 显示图像
colormap(map);           % 设置色彩索引图
title(' 第二次消噪后的图像 ');   % 设置图像标题
axis square;                   % 设置显示比例

程序运行结果:

基于小波图像去噪的MATLAB实现_第5张图片

比较上图中几幅图像,可见第一次去早滤除了大部分的高频噪,但与原图比较,依然有不少的高频噪声,第二次去噪在第一次的去噪基础上,再次滤除高频噪声,去噪效果较好,但图像的质量比原图稍差。

六、总结

随着信息时代计算机的日益普及,人们对数字图像的质量要求越来越高。但是数字图像在采集和传输过程中,难免会受到噪声的污染,这不仅不符合人们的视觉效果,而且也不利于图像的进一步处理。因此,图像去噪具有很强的理论意义和应用价值。图像消噪是信号处理中的一个经典问题,传统的消噪方法多采用平均或线性方法进行,但 是其消噪效果不好,随着小波理论的不断完善,它以自身良好的时频特性在图像消噪领域受到越来越多的关注,文中将以 MATLAB 为平台介绍以小波变换去除图像噪声的基本方法。

采用基于小波变换的图像增强技术可以通过对低频分解系数进行增强处理,对高频分解系数进行衰减处理达到图像增强的作用。小波阈值去噪方法是小波去噪领域使用较多的方法,因为其理论相对比较成熟,而且去噪效果也比较好。它是集图像去噪和增强为一体的优秀处理方法,被广泛的应用于图像处理中,大量实践也证明该算法优于其他增强技术。

你可能感兴趣的:(计算机视觉,机器学习,人工智能,深度学习,python)