《数字信号处理》项目:小波分析在图像处理上的应用
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
小波分析在图像处理中的应用
1 引言
小波分析(Wavelet Analysis)即小波变换是80年代中期发展起来的一门新兴的数学理论和方法,它被认为是傅立叶分析方法的突破性进展,它具有许多优良的特性。
小波变换的基本思想类似于Fourier 变换,就是用信号在一族基函数张成的空间上的投影表征该信号。
经典的Fourier 变换把信号按三角正、余弦基展开,将任意函数表示为具有不同频率的谐波函数的线性迭加,能较好地刻划信号的频率特性,但它在时空域上无任何分辨,不能作局部分析,这在理论和应用上都带来了许多不便。
小波分析优于傅立叶之处在于,小波分析在时域和频域同时具有良好的局部化性质,因为小波函数是紧支集,而三角正、余弦的区间是无穷区间,所以小波变换可以对高频成分采用逐渐精细的时域或空间域取代步长,从而可以聚焦到对象的任意细节。
因此,小波变换被誉为分析信号的显微镜,傅立叶分析发展史上的一个新的里程碑。
小波分析的应用是与小波分析的理论研究紧密地结合在一起的。
现在,它已经在科技信息领域取得了令人瞩目的成就。
现在,对性质随时间稳定不变的信号,处理的理想工具仍然是傅立叶分析。
但在实际应用中,绝大多数信号是非稳定的,小波分析正是适用于非稳定信号的处理工具。
图像处理是针对性很强的技术,根据不同应用、不同要求需要采用不同的处理方法。
采用的方法是综合各学科较先进的成果而成的,如数学、物理学、心理学、信号分析学、计算机学、和系统工程等。
计算机图像处理主要采用两大类方法:一类是空域中的处理,即在图像空间中对图像进行各种处理;另一类是把空间与图像经过变换,如傅立叶变换,变到频率域,在频率域中进行各种处理,然后在变回到图像的空间域,形成处理后的图像。
图像处理是“信息处理”的一个方面,这一观点现在已经为人所熟知。
它可以进一步细分为多个研究方向:图片处理、图像处理、模式识别、景物分析、图像理解、光学处理等等。
小波分析用在图像处理方面,主要是用来进行图像压缩、图像去噪、图像增强(包括图像钝化和图像锐化)、图像融合、图像分解。
2 常用小波介绍
2.1 Haar 小波
A.Haar 于1990年提出一种正交函数系,定义如下:
⎪⎩
⎪
⎨⎧-011
H
ψ
其它12/12/10<≤≤≤x x (2.1) 这是一种最简单的正交小波,即
0)()(=-⎰
∞
∞
-dx n x t ψψ ,2,1±±=n … (2.2)
2.2 Daubechies (dbN )小波系
该小波是Daubechies 从两尺度方程系数{}k h 出发设计出来的离散正交小波。
一般简写为
dbN ,N 是小波的阶数。
小波ψ和尺度函数吁中的支撑区为2N-1。
ϕ的消失矩为N 。
除N =1外(Haar 小波),dbN 不具对称性〔即非线性相位〕;dbN 没有显式表达式(除N =1外)。
但{}
k h 的传递函数的模的平方有显式表达式。
假设∑-=+-=1
01)(N k k
k
N k y C
y P ,其中,k
N k
C +-1为二项式的系
数,则有
)2
(sin
)2
(cos )(2
2
2
0ω
ω
ωP m N
= (2.3)
其中 ∑-=-=
1
20
02
1)(N k ik k
e
h
m ω
ω
2.3 Biorthogonal (biorNr.Nd )小波系
Biorthogonal 函数系的主要特征体现在具有线性相位性,它主要应用在信号与图像的重构中。
通常的用法是采用一个函数进行分解,用另外一个小波函数进行重构。
Biorthogonal 函数系通常表示为biorNr.Nd 的形式: Nr=1 Nd=1,3,5 Nr=2 Nd=2,4,6,8 Nr=3 Nd=1,3,5,7,9 Nr=4 Nd=4 Nr=5 Nd=5 Nr=6 Nd=8
其中,r 表示重构,d 表示分解。
2.4 Coiflet (coifN )小波系
coiflet 函数也是由Daubechies 构造的一个小波函数,它具有coifN (N=1,2,3,4,5)这一系列,coiflet 具有比dbN 更好的对称性。
从支撑长度的角度看,coifN 具有和db3N 及sym3N 相同的支撑长度;从消失矩的数目来看,coifN 具有和db2N 及sym2N 相同的消失矩数目。
2.5 SymletsA (symN )小波系
Symlets 函数系是由Daubechies 提出的近似对称的小波函数,它是对db 函数的一种改进。
Symlets 函数系通常表示为symN (N=2,3,…,8)的形式。
2.6 Mexican Hat (mexh )小波
Mexican Hat 函数为 2
/24
/12
)1(3
2)(x e
x x ---=
ψπ
(2.4)
它是Gauss 函数的二阶导数,因为它像墨西哥帽的截面,所以有时称这个函数为墨西哥帽函数。
墨西哥帽函数在时间域与频率域都有很好的局部化,并且满足
0)(=⎰∞
∞-dx x ψ (2.5)
由于它的尺度函数不存在,所以不具有正交性。
2.7 Meyer 函数
Meyer 小波函数ψ和尺度函数ϕ都是在频率域中进行定义的,是具有紧支撑的正交小波。
⎪⎪⎪
⎩
⎪⎪
⎪⎨
⎧--=ψ--0
))123(2cos()2())123(2sin()2()(ˆ2/2/12
/2/1ωπυππωπ
υππωωωj j e e ]38,32[38343432ππωπωππωπ∉≤≤≤≤ (2.6) 其中,)(a υ为构造Meyer 小波的辅助函数,且有
⎪⎪
⎩⎪⎪
⎨⎧-=--0
))123(2cos()2()2()(ˆ2
/12
/1ωπυπππωφ 3
434323
2πωπωππ
ω>
≤
≤≤
(2.7) 3 小波分析用于图像压缩
3.1 图像压缩概述
通常所说的图像压缩主要指无损压缩(无失真)和有损压缩(有失真)两大类。
所谓无损压缩是指图像数据经压缩后可以完全得到复原,复原后的图像与原始图像完全一致。
有损压缩则是指经它处理的数据在基本保持原图像的特征的前提下,不可避免地要丢掉一部分原始图像信息。
图像能够进行压缩的主要原因是:
(1)原始图像信息存在着很大的冗余度,数据之间存在着相关性,如相邻像素之间色彩的相关性等,消息中这些冗余信息将会产生额外的编码。
如果去掉冗余信息,就会减少消息所占的空间。
(2)在美图系统的应用领域中,人眼作为图像信息的接收端,其视觉对于边缘急剧变化不敏感(视觉掩盖效应),以及人眼对图像的亮度信息敏感,而对颜色分辨率弱等,因此在高压缩比的情况下,解压缩后的图像信号仍比较满意。
基于上述两点,无论采用无损压缩还是有损压缩。
只要损失的数据不太影响人眼主观接受的效果,即可采用。
一个图像作小波分解后,可得到一系列不同分辨率的子图像,不同分辨率的子图像对应的频率是不相同的。
高分辨率(即高频)子图像上大部分分点的数值都接近于0,越是高频这种现象越明显。
对一个图像来说,表现一个图像最主要的部分是低频部分,所以一个最简单的压缩方法是利用小波分解,去掉图像的高频部分而只保留低频部分。
3.2 主要调用命令
“whos”用于显示当前MATLAB工作空间的变量,而在命令窗口中输入data后,将显示该数据。
变量查询函数who与whos,作用都是列出在matlab工作空间中已经驻留的变量名清单,不同的是whos在给出驻留变量的同时,还给出他们的维数及性质。
wavedec2是多尺度二维小波分解,调用格式为:
[C,L] = wavedec2(X,N,'wname')
即对信号X进行N尺度的小波分解,’wname’为所使用的小波名称。
N为正整数。
输出分解结构包括行向量C,它包含计算出的小波变换系数及定义了C中系数的排列的记录矩阵L。
C的组织形式是[A(N)|H(N)|V(N)|D(N)|H(N-1) |...H(1)|V(1)|D(1)],其中A、H、V及D分别表示逼近系数、水平系数、垂直系数及对角系数,小括号中数字的含义如H(N)表示第N次分解的水平系数。
L由两列组成,每一列对应相应的系数矩阵的大小。
3.3 程序流程图
图 3.1 图像压缩流程图
4 小波分析用于图像去噪
4.1 图像去噪概述
噪声可以理解为妨碍人的视觉器官或系统传感器对所接收图像源进行理解或分析的各种因素。
一般噪声是不可预测的随机信号,它只能用概率统计的方法去认识,。
噪声对图像处理十分重要,它影响图像处理的输入、采集、处理的各个环节以及输出结果的全过程。
特别是图像的输入、采集的噪声是个十分关键的问题,若输入伴有较大噪声,必然影响处理全过程
及输出结果。
因此一个良好的图像处理系统,不论是模拟处理还是计算机处理无不把减少最前一级的噪声作为主攻目标。
去噪已成为图像处理中极其重要的步骤。
对二维图像信号的去噪方法同样适用于一维信号,尤其是对于几何图像更适合。
二维模型可以表述为
s(i,j)=f( i,j)+δ·e(i,j) i,j=0,1,…,m-1
其中,e是标准偏差不变的高斯白噪声。
二维信号用二维小波分析的去噪步骤有3步:(1)二维信号的小波分解。
选择一个小波和小波分解的层次N,然后计算信号s到第N 层的分解。
(2)对高频系数进行阈值量化。
对于从1到N的每一层,选择一个阈值,并对这一层的高频系数进行软阈值量化处理。
(3)二维小波的重构。
根据小波分解的第N层的低频系数和经过修改的从第一层到第N 层的各层高频系数计算二维信号的小波重构。
在这3个步骤中,重点是如何选取阈值和阈值的量化。
4.2 主要调用命令
ddencmp的调用格式有以下三种:
(1)[THR,SORH,KEEPAPP,CRIT]=ddencmp(IN1,IN2,X)
(2)[THR,SORH,KEEPAPP,CRIT]=ddencmp(IN1,'wp',X)
(3)[THR,SORH,KEEPAPP,CRIT]=ddencmp(IN1,'wv',X)
函数ddencmp用于获取信号在消噪或压缩过程中的默认阈值。
输入参数X为一维或二维信号;IN1取值为'den'或'cmp','den'表示进行去噪,'cmp'表示进行压缩;IN2取值为'wv'或'wp',wv表示选择小波,wp表示选择小波包。
返回值THR是返回的阈值;SORH是软阈值或硬阈值选择参数;KEEPAPP表示保存低频信号;CRIT是熵名(只在选择小波包时使用)。
wdencmp用于一维或二维信号的消噪或压缩。
其调用格式为:
1.[XC,CXC,LXC,PERF0,PERFL2]=wdencmp('gbl',X,'wname',N,THR,SORH,KEEPAPP)
2.[XC,CXC,LXC,PERF0,PERFL2]=wdencmp('lvd',X,'wname',N,THR,SORH)
3.[XC,CXC,LXC,PERF0,PERFL2]=wdencmp('lvd',C,L,'wname',N,THR,SORH)
wname是所用的小波函数,gbl(global的缩写)表示每层都采用同一个阈值进行处理,lvd表示每层用不同的阈值进行处理,N表示小波分解的层数,THR为阈值向量,对于格式(2)(3)每层都要求有一个阈值,因此阈值向量THR的长度为N,SORH表示选择软阈值还是硬阈值(分别取为’s’和’h’),参数KEEPAPP取值为1时,则低频系数不进行阈值量化处理,反之,则低频系数进行阈值量化。
XC是消噪或压缩后的信号,[CXC,LXC]是XC的小波分解结构,PERF0和PERFL2是恢复和压缩L^2的范数百分比。
4.3 程序流程图
图4.1 图像去噪流程图
5 运行结果
5.1图像压缩结果
压缩前图像X的大小:
Name Size Bytes Class
X 256x256 524288 double array Grand total is 65536 elements using 524288 bytes 第一次压缩图像的大小为:
Name Size Bytes Class
ca1 135x135 145800 double array Grand total is 18225 elements using 145800 bytes 第二次压缩图像的大小为:
Name S ize Bytes Class
ca2 75x75 45000 double array Grand total is 5625 elements using 45000 bytes
运行结果如图所示:
原始图像
50100150200250
50100
150200250
分解后低频和高频信息100200300400500
100200300400500
第一次压缩
20406080100120
20
40
6080100120
第二次压缩
20
40
60
204060
图4.1 利用二维小波分析进行图像压缩
图像对比如图所示。
可以看出,第一次压缩提取的是原始图像中小波分解第一层的低频信息,此时压缩效果较好,压缩比较小:第二次压缩是提取第一层分解低频部分的低频部分(即小波分解第二层的低频部分),其压缩比较大,压缩效果在视觉上也基本过的去。
这是一种最简单的压缩方法,只保留原始图像中低频信息,不经过其他处理即可获得较好的压缩效果。
在上面的例子中,我们还可以只提取小波分解第3、4、…层的低频信息。
从理论上说,我们可以获得任意压缩比的压缩图像。
MATLAB 中实现图像压缩,还可利用现有的函数来实现。
这种方法主要包括获取压缩阈值和进行图像压缩两反面。
实现获取压缩阈值的函数有ddencmp 和wdcbm2两个,实现图像压缩的函数有wdencmp 、wpdencm 和wthcoef2三个。
5.2 图像去噪结果
输出结果从图中5个图像的比较可以看出,Matlab 中的ddencmp 和wdencmp 函数可以有效地进行去噪处理。
原始图像X 50100150200
50100150200
含噪声的图像X noise 50100150200
50100
150200
基于软阈值去噪后的图像50100150200
50
100150200
硬阈值去噪后的图像50100150200
50100
150200
默认阈值去噪后图像50100150200
50100150200
图5.2 图像去噪比较
小波阈值法去噪:主要适用于信号中混有白噪声的情况。
其优点是噪声几乎完全得到抑制,且反映原始信号的特征尖峰点得到很好的保留。
用软阈值法去噪可以使去噪信号是原始信号的近似最优估计,且估计信号至少和原始信号同样光滑而不会产生附加振荡。
6 结论
本文对图像压缩和去噪的相关技术进行分析,并根据小波分析的原理解决图像压缩和去噪的方法,详细论述了小波分析函数在图像压缩和去噪的应用,通过MATLAB 仿真结果表明,利用此方法进行图像的压缩,去噪具有比较好的效果。
随着数字图像处理技术的发展,图像压缩的应用已经深入到关系国计民生的许多领域。
而基于小波分析变化的图像压缩的应用会更显著。
在今后的发展中,小波分析变换以其独特的分解重构算法,在图像处理应用中会越来越广泛。
附加代码:
%图像去噪;下面装载原始图像,X 中含有被装载的图像 load tire;
subplot(221); image(X); colormap(map); title('原始图像'); axis square %产生含噪图像
init = 2055615866; randn('seed', init); %#ok<*RAND> x = X + 38*randn(size(X));
%画出含噪声图像
subplot(222); image(X); colormap(map);
title('含噪声图像');
axis square;
%=====================================
%下面进行图像的消噪处理
%用小波函数sym4对x进行2层小波分解
[c, s] = wavedec2(x, 2, 'sym4');
%提取小波分解中第一层的低频图像,即实现了低通滤波消噪
a1 = wrcoef2('a', c, s, 'sym4', 1);
%画出消噪后的图像
subplot(223); image(a1);
title('第一次消噪图像');
axis square;
%提取小波分解中第二层的低频图像,即实现了低通滤波消噪
%这相当把第一层的低频图像经过再一次的低频滤波处理
a2 = wrcoef2('a', c, s, 'sym4', 2);
%画出消噪后的图像
subplot(224); image(a2);
title('第二次消噪图像');
axis square;
%图像压缩;装入原始图像,x包含装入的图像
load woman;
%画出原始图像
subplot(221); image(X); colormap(map);
title('原始图像');
axis square
%用wpdencmp进行图像的压缩,采用默认阈值(参见ddencmp) [thr, sorh, keepapp, crit] = ddencmp('cmp', 'wp', X)
%用全局阈值选项进行图像的压缩
xc = wpdencmp(X, sorh, 3, 'bior3.1', crit, thr, keepapp); %画出压缩后的图像
subplot(222); image(xc); colormap(map);
title('全局阈值压缩图像');
axis square。