MATLAB仿真实现图像去噪(6)

2019-06-17 15:53

(3-12)

C是一个与信号无关的常数。如何选择a0和b0,才能保证重构信号的精度呢?显然,网络点应尽可能密(即a0和b0尽可能的小),因为如果网络点越稀疏,使用的小波函数?j,k?t?和离散小波系数Cj,k就越少,信号重构的精确度也就会越低。由于图像是二维信号,因此首先需要把小波变换由一维推广到二维。令f?x1,x2?表示一个二维信号,x1,x2分别是其横坐标和纵坐标,??x1,x2?表示二维的基本小波,对应的尺度函数为??x1,x2? 。若尺度函数可分离,即:??x1,x2????x1????x2?。令??x1?是与??x1?对应的一维小波函数,则二维的二进小波可表示为以下三个可分离的正交小波基函数:

?1?x1,x2????x1???x2? (3-13)

?2?x1,x2????x1???x2? (3-14)

?3?x1,x2????x1???x2? (3-15)

这说明在可分离的情况下,二维多分辨率可分两步进行。先沿x1方向分别用

??x1?和??x2?做分析,把f?x1,x2?分解成平滑和细节两部分,然后对这两部分再沿x2方向用??x2?和??x1?做同样分析,所得到的四路输出中经??x1?,??x2?处理

1f?x1,x2?,D12f?x1,x2?,所得的一路是第一级平滑逼近A1f?x1,x2?,其它三路输出D1D13f?x1,x2?都是细节函数。如果把??x1?和??x1?的对应频谱??w?,??w?设想成理

想的半带低通滤波器h和高通滤波器g,则A1f?x1,x2?反映的是x1 , x2两个方向

1f?x1,x2? 反映的是水平方向的低频分量和垂直方向的高频分量,的低频分量,D1D12f?x1,x2?反映的是水平方向的高频分量和垂直方向的低频分量,D13f?x1,x2?反

29

映的是两个方向的高频分量。对图像进行小波变换就是用低通滤波器h和高通滤波器g对图像的行列进行滤波(卷积),然后进行二取一的下抽样。这样进行一次小波变换的结果便将图像分解为一个低频子带(水平方向和垂直方向均经过低通滤波)LL和三个高频子带,即用HL表示水平高通、垂直低通子带,用LH表示水平低通、垂直高通子带,用HH表示水平高通、垂直高通子带。分辨率为原来的1/2,频率范围各不相同。第二次小波变换时只对LL子带进行,进一步将LL子带分解为LL1,LH1,HL1和HH1,分辨率为原来的1/4,频率范围进一步减半,以此类推。所以,进行一次小波变换得到4个子带,进行M次分解就得到3 M+1个子带,如图3-1。

LL3 HL3

LH3 HH3

HL2

HL3

LH2

HH2

LH3

HH1 图3-1 图像的三级小波分解图

第四章 小波阈值去噪及MATLAB仿真

30

4.1 小波阈值去噪概述 4.1.1 阈值去噪法简述

1992年,斯坦福大学的Donoho D L和Johnstone教授提出一种具有良好的统计优化特性的去噪方法,称作“Wavelet Shrinkage”(即阈值收缩法)。

该方法的主要思想是:基于图像和噪声在经小波变换后具有不同的统计特性:图像本身的能量对应着幅值较大的小波系数,主要集中在高频(LL);噪声能量则对应着幅值较小的小波系数,并分散在小波变换后的所有系数中。根据该特征,设置一个阈值门限,认为大于该阈值的小波系数的主要成份为有用的信号,给予收缩后保留;小于该阈值的小波系数,主要成份为噪声,予以剔除,这样就可以达到去噪的目的。

去噪时,通常认为低通系数含有大量的图像能量,一般不作处理,只对剩余三个高通部分进行处理。因此,一次阈值去噪并不能完全去除噪声,还需要对未作处理的低频部分(LL)再次进行小波分解和阈值去噪,直到实际图像与估计图像的偏差达到最小值。

但是,随着分解和去噪次数的增加,小波系数中的噪声能量越来越少,并且趋于分散,去噪的效果将逐渐降低。一般来说,进行3-4层小波分解和去噪就可以达到满意的去噪效果。

4.1.2 小波阈值去噪方法

小波阈值去噪的基本思路是:

(1)先对含噪信号f?k?做小波变换,得到一组小波系数Wj,k; (2)通过对Wj,k进行阈值处理,得到估计系数W值尽可能小; (3)利用W^j,k^j,k,使得W^j,k与Wj,k两者的差

进行小波重构,得到估计信号f?k?即为去噪后的信号。

Donoho提出了一种非常简洁的方法对小波系数Wj,k进行估计。对f?k?连续做几次小波分解后,有空间分布不均匀信号s?k?各尺度上小波系数Wj,k在某些特定位置有较大的值,这些点对应于原始信号s?k?的奇变位置和重要信息,而其他

31

大部分位置的Wj,k较小;对于白噪声n?k?,它对应的小波系数Wj,k在每个尺度上的分不都是均匀的,并随尺度的增加,Wj,k系数的幅值减小。因此,通常的去噪办法是寻找一个合适的数?作为阈值(门限),把低于λ的小波函数Wj,k(主要由信号n?k?引起),设为零,而对于高于?的小波函数Wj,k(主要由信号s?k?引起),则予以保留或进行收缩,从而得到估计小波系数W信号s?k?引起的,然后对W^j,k^j,k,它可理解为基本由

进行重构,就可以重构原始信号。

估计小波系数的方法如下,取:

???2log?N?(4-1)

定义:

W^j,k??Wj,k,Wj,k??????0,Wj,k??

(4-2)

称之为硬阈值估计方法。一般软阈值估计定义为

W^j,k??sign?Wj,k??Wj,k???,Wj,k????0,Wj,k????

(4-3)

4.2 基于MATLAB的小波去噪函数简介

常用的图像降噪方式是小波阈值降噪方法。这是一种实现简单而效果较好的降噪方法,阈值降噪方法的思想很简单,就是对小波分解后的各层系数模大于和小于某阈值的系数分别进行处理,然后利用处理后的小波系数重构出降噪后的图像。在阈值降噪中,阈值函数体现了对小波分解系数的不同处理策略和不同的估计方法。常用的阈值函数有硬阈值函数和软阈值函数。硬阈值函数可以很好地保留图像边缘等局部特征,但图像会出现伪吉布斯效应等视觉失真等现象:而软阈值处理相对较光滑,但可能会造成边缘模糊等失真现象,为此人们提出了半软阈值函数。

32

小波阈值降噪方法处理阈值的选取,另一个关键因素是阈值的具体估计。如果阈值太小,降噪后的图像仍然存在噪声:相反如果阈值太大,重要图像特征有被滤掉,引起偏差。从直观上讲,对于给定的小波系数,噪声越大,阈值就越大。

MATLAB中实现图像的降噪,主要是阈值获取和图像降噪实现两个方面。 1 阈值获取

MATLAB中实现阈值获取的函数有ddencmp、select、wbmpen和wdcbm2。这里主要介绍函数ddencmp。

函数ddencmp的功能是获取降噪或压缩的默认值。该函数是降噪和压缩的导向函数,它给出一维或二维信号使用小波或小波包进行降噪和压缩一般过程的所有默认值。

其语法格式为:

[THR,SORH,KEEPAPP,CRIT]=ddencmp(IN1,IN2,X) [THR,SORH,KEEPAPP]= ddencmp(IN1,‘wv’,X) [THR,SORH,KEEPAPP,CRIT]= ddencmp(IN1,‘wp’,X) 2 阈值降噪

MATLAB中实现阈值降噪的函数有wden、wdencmp、wpdencmp、wthresh、wpthcoef和wthcoef2。这里主要介绍函数wdencmp。

其语法格式为:

[XC,CXC,LXC,PERF0,PERFL2]

wdencmp('gbl',X,'wname',N,THR,SORH,KEEPAPP)

[XC,CXC,LXC,PERF0,PERFL2] = wdencmp('lvd',X,'wname',N,THR,SORH) [XC,CXC,LXC,PERF0,PERFL2] = wdencmp('lvd',C,L,'wname',N,THR,SORH) 函数wdencmp的功能是使用小波进行降噪。该函数是二维小波降噪的导向函数。它使用小波对信号或图像执行降噪过程。wname是所用的小波函数。gbl(global)表示每层都采用同一个阈值进行处理。lvd表示每层用不同的阈值进行处理。N表示小波分解的层数。THR为阈值向量,长度为N。SORH表示选择软阈值或硬阈值(分别取值为‘s’和‘h’)。参数KEEPAPP取值为1是,则低频系数不进行阈值量化,反之,则低频系数要进行阈值量化。XC是降噪后的信号,[CXC,LXC]是XC的小波分解结构,PHRF0和PERFL2是恢复和压缩L2的范数百分

=

33


MATLAB仿真实现图像去噪(6).doc 将本文的Word文档下载到电脑 下载失败或者文档不完整,请联系客服人员解决!

下一篇:概率论与数理统计及其应用课后答案(浙江大学 - 盛骤版)

相关阅读
本类排行
× 注册会员免费下载(下载后可以自由复制和排版)

马上注册会员

注:下载文档有可能“只有目录或者内容不全”等情况,请下载之前注意辨别,如果您已付费且无法下载或内容有问题,请联系我们协助你处理。
微信: QQ: