小波变换图像去噪MATLAB实现

小波变换图像去噪MATLAB实现
小波变换图像去噪MATLAB实现

__________________________________________________ 小波变换图像去噪MATLAB实现

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

一、论文背景

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

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

滤波去噪问题,以提高图像质量。

二、 课题原理

1.小波基本原理

在数学上,小波定义为对给定函数局部化的新领域,小波可由一个定义在有限区域的函数()x ψ来构造,()x ψ称为母小波,(mother wavelet )或者叫做基本小波。一组小波基函数,()}{,x b

a ψ,可以通过缩放和平移基本小波 来生成:

())(1

,a

b x a x b a -ψ=ψ (1) 其中,a 为进行缩放的缩放参数,反映特定基函数的宽度,b 为进行平移的平移参数,指定沿x 轴平移的位置。当a=2j 和b=ia 的情况下,一维小波基函数序列定义为:

()()

1222,-ψ=ψ--x x j j j i (2) 其中,i 为平移参数,j 为缩放因子,函数f (x )以小波()x ψ为基的连续小波变换定义为函数f (x )和()x b a ,ψ的内积:

()

dx a

b x a x f f x W b a b a )(1)(,,,-ψ=ψ=?+∞

∞- (3)

与时域函数对应,在频域上则有:

())(,ωωa e a x j b a ψ=ψ- (4)

可以看出,当|a|减小时,时域宽度减小,而频域宽度增大,而且()x b a ,ψ的窗口中心向|ω|增大方向移动。这说明连续小波的局部是变化的,在高频时分辨率高,在低频时分辨率低,这便是它优于经典傅里叶变换的地方。总体说来,小波变换具有更好的时频窗口特性。

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来概括,即带噪信号经过预处理,然后利用小波变换把信号分解到各尺度中,在每一尺度下把属于噪声的小波系数去掉,保留并增强属于信号的小波系数,最后再经过小波逆变换恢复检测信号。

图3-1小波去噪框图

因此,利用小波变换在去除噪声时,可提取并保存对视觉起主要作用的边缘信

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

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

3.2.1阈值去噪原理

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

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

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

(3)利用估计小波系数k j w,进行小波重构,得到估计信号了)(t

f,即为去噪之后的信号。

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

3.2.2阈值函数的选取

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

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

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

图4-1 小波图像分解过程

图4-2 小波图像分解过程

其二层小波图像重构过程正好与此相反如图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); % 新建窗口

相关主题
相关文档
最新文档