傅里叶、小波变换课件_第1页
傅里叶、小波变换课件_第2页
傅里叶、小波变换课件_第3页
傅里叶、小波变换课件_第4页
傅里叶、小波变换课件_第5页
已阅读5页,还剩35页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、傅里叶、小波变换傅里叶、小波变换傅里叶、小波变换傅里叶、小波变换傅里叶、小波变换傅里叶、小波变换傅里叶、小波变换傅里叶、小波变换 傅里叶变换是数学上,特别是工程数学上常用的变换方法。Matlab中的二维快速傅里叶变换函数是fft2,该函数对应的逆傅里叶变换函数是ifft2。 图像傅里叶变换函数在这一节中,还是通过Matlab中的傅里叶变换函数直观上理解分析傅里叶变换。 傅里叶、小波变换1.1.图像傅里叶变换函数图像傅里叶变换函数fft2fft2【例例4-16】利用傅里叶变换函数变换图像,观察分析变换结】利用傅里叶变换函数变换图像,观察分析变换结果。果。 A= imread(D:0371.bmp

2、);A= imread(D:0371.bmp); B= imread(D:00.bmp); B= imread(D:00.bmp); A1=fft2(A); A1=fft2(A); B1=fft2(B); B1=fft2(B); subplot(1,4,1); imshow(A) subplot(1,4,1); imshow(A) subplot(1,4,2); imshow(A1) subplot(1,4,2); imshow(A1) subplot(1,4,3); imshow(B) subplot(1,4,3); imshow(B) subplot(1,4,4); imshow(B1)

3、subplot(1,4,4); imshow(B1)设计左面程序设计左面程序进行傅里叶变进行傅里叶变换。换。程序的运行结程序的运行结果是图果是图4-124-12所所示。示。 傅里叶、小波变换(a) (b) (c) (d)(a) (b) (c) (d)(a) (a) 原图像原图像03710371,(b) (b) 图像图像03710371变换结果,变换结果,(c) (c) 图像图像0000,(b) (b) 图像图像0000变换结果变换结果 图图4-12 4-12 图像傅里叶变换结果图像傅里叶变换结果 由于图4-12中的原图像简单,所以能够看出变换后结果的一些特征。如果把上面程序中的原图像换为图4-

4、13中的(a)与(c),那么得到的变换数据显示出来,视觉上觉得杂乱无章。 (a) (b) (c) (d)(a) (b) (c) (d)(a) (a) 原图像原图像00100010,(b) (b) 图像图像00100010变换结果,变换结果,(c) (c) 图像图像00410041,(b) (b) 图像图像00410041变换结果变换结果 图图4-13 4-13 复杂图像傅里叶变换结果复杂图像傅里叶变换结果 傅里叶、小波变换2.2.图像逆傅里叶变换函数图像逆傅里叶变换函数ifft2ifft2【例4-17】利用傅里叶变换函数变换图像,然后用逆傅里叶变换函数复原图像,观察分析比较。设计如下程序:A=

5、 imread(D:0010.jpg); A=rgb2gray(A);A= imread(D:0010.jpg); A=rgb2gray(A);B= imread(D:0041.jpg); B=rgb2gray(B);B= imread(D:0041.jpg); B=rgb2gray(B);C= imread(D:0371.bmp);C= imread(D:0371.bmp);D= imread(D:00.bmp);D= imread(D:00.bmp);A1=fft2(A); B1=fft2(B); C1=fft2(C); D1=fft2(D);A1=fft2(A); B1=fft2(B);

6、 C1=fft2(C); D1=fft2(D);A2=abs(ifft2(A1);A2=abs(ifft2(A1);B2=abs(ifft2(B1);B2=abs(ifft2(B1);C2=ifft2(C1);C2=ifft2(C1);D2=ifft2(D1);D2=ifft2(D1);subplot(2,4,1); imshow(A); subplot(2,4,2); imshow(B)subplot(2,4,1); imshow(A); subplot(2,4,2); imshow(B)subplot(2,4,3); imshow(C); subplot(2,4,4); imshow(D)

7、subplot(2,4,3); imshow(C); subplot(2,4,4); imshow(D)subplot(2,4,5); image(A2); subplot(2,4,6); image(B2)subplot(2,4,5); image(A2); subplot(2,4,6); image(B2)subplot(2,4,7); imshow(C2); subplot(2,4,8); imshow(D2)subplot(2,4,7); imshow(C2); subplot(2,4,8); imshow(D2) 傅里叶、小波变换程序的运行结果为图4-14所示。 图4-14逆傅里叶变

8、换复原图像 程序中首先进行傅里叶变换,然后进行逆傅里叶变换,对逆程序中首先进行傅里叶变换,然后进行逆傅里叶变换,对逆变换结果取模(因为傅里叶变换后一般是复数),然后重新变换结果取模(因为傅里叶变换后一般是复数),然后重新绘制出来。从图像上看几乎看不出复原图像与原图像有区别,绘制出来。从图像上看几乎看不出复原图像与原图像有区别,但是由于机器计算精度有限,另外计算时必然要进行截断,但是由于机器计算精度有限,另外计算时必然要进行截断,所以原图像与复原图像之间是有细小差别的。所以原图像与复原图像之间是有细小差别的。 傅里叶、小波变换1. 1. 图像傅里叶变换图像傅里叶变换因为图像矩阵是离散的,所以图像

9、处理时多使用二维离散因为图像矩阵是离散的,所以图像处理时多使用二维离散傅里叶变换。二维离散傅里叶变换定义如下:傅里叶变换。二维离散傅里叶变换定义如下: 我们他门是要变换的函数或矩阵,作为矩阵大小为我们他门是要变换的函数或矩阵,作为矩阵大小为M N。为了剖析二维离散傅里叶变换定义式,更深刻的理解该变为了剖析二维离散傅里叶变换定义式,更深刻的理解该变换的含义,根据式换的含义,根据式(4-5)(4-5),设计了例,设计了例4-19来实现图像的二维来实现图像的二维离散傅里叶变换。该例题中的程序实现了二维离散傅里叶离散傅里叶变换。该例题中的程序实现了二维离散傅里叶变换,但是与变换,但是与fft2fft2

10、函数不同,函数不同,fft2fft2函数使用的是快速傅里函数使用的是快速傅里叶变换变换算法,在算法的质量与运行速度上都优于该例叶变换变换算法,在算法的质量与运行速度上都优于该例题中的程序。题中的程序。 1010)(2),(),(MxNyNvyMuxjeyxAvuF1, 1 , 01, 1 , 0NvMu(4-5) ),(yxf傅里叶、小波变换【例4-19】编写程序计算图像的二维离散傅里叶变换。A= imread(D:shizi1.bmp);A= imread(D:shizi1.bmp);B=rgb2gray(A);B=rgb2gray(A);B=double(B);B=double(B);s=

11、size(B);s=size(B);M=s(1); N=s(2);M=s(1); N=s(2);for u=0:M-1for u=0:M-1 for v=0:N-1 for v=0:N-1 k=0; k=0; for x=0:M-1 for x=0:M-1 for y=0:N-1 for y=0:N-1 k=B(x+1,y+1) k=B(x+1,y+1)* *exp(-jexp(-j* *2 2* *pipi* *(u(u* *x/M+vx/M+v* *y/N)+k;y/N)+k; end end end end F(u+1,v+1)=k; F(u+1,v+1)=k; end endenden

12、dC=fft2(B);C=fft2(B);subplot(1,3,1); imshow(A)subplot(1,3,1); imshow(A)subplot(1,3,2); imshow(C)subplot(1,3,2); imshow(C)subplot(1,3,3); imshow(F)subplot(1,3,3); imshow(F) 根据式(4-5)设计左面程序傅里叶、小波变换 1010)(2)(2),(),(MxNyNvyjMuxjeeyxAvuF1, 1 ,01, 1 ,0NvMuPAQF 2. 2. 图像傅里叶变换的矩阵表示图像傅里叶变换的矩阵表示离散傅里叶变换表达式(4-5)也

13、可以改写为下面(4-6)形式: (4-6) 改写后进一步可以把式(4-6)变成矩阵乘积的形式: 式(4-7)中的P与Q分别是式(4-8)与(4-9)所示矩阵。 MMMjMMjMMjMMjMjMjMMjMjMjeeeeeeeeeP)1)(1(22)1(212)1(22222221222121111111(4-8) 傅里叶、小波变换MMMjMMjMMjMMjMjMjMMjMjMjeeeeeeeeeQ)1)(1(22)1(212)1(22222221222121111111称P与Q为二维离散傅里叶变换的变换矩阵。【思考题】二维离散傅里叶变换的变换矩阵与离散余弦变换矩阵有什么区别? 3. 图像逆傅里叶

14、变换图像二维逆离散傅里叶变换的定义式如下式所示: (4-9) 1010)(2)(2),(1),(MuNvNvyjMuxjeevuFMNyxA1, 1 ,01, 1 ,0NyMx(4-10) 傅里叶、小波变换l例4-21lA0= imread(D:0.bmp);lA=double(A0);ls=size(A);lM=s(1);lN=s(2);lfor u=0:M-1l for x=0:M-1l P(u+1,x+1)= (1/M0.5)*exp(-j*2*pi*(u*x/M);l endlendlfor v=0:N-1l for y=0:N-1l Q(v+1,y+1)= (1/N0.5)*exp(

15、-j*2*pi*(v*y/N);l endlend lC=fft2(A);lF=P*A*Q;lsubplot(1,3,1); imshow(A)lsubplot(1,3,2); imshow(C)lsubplot(1,3,3); imshow(F)傅里叶、小波变换傅里叶、小波变换傅里叶、小波变换傅里叶、小波变换傅里叶、小波变换傅里叶、小波变换傅里叶、小波变换傅里叶、小波变换傅里叶、小波变换傅里叶、小波变换傅里叶、小波变换傅里叶、小波变换lMatlab中有很多关于小波变换的函数,其中二维小中有很多关于小波变换的函数,其中二维小波变换函数都可以用在图像处理、图像压缩等领域。波变换函数都可以用在图像

16、处理、图像压缩等领域。另外另外Matlab也提供了许多小波函数专门用于图像处也提供了许多小波函数专门用于图像处理。理。二维小波变换 1.1.二维小波变换二维小波变换l母小波函数是指满足式母小波函数是指满足式 的函数,的函数,二维母小波函数的构造可由一维母小波函数的张量二维母小波函数的构造可由一维母小波函数的张量积形成,也可以采用非张量积的方法构造。积形成,也可以采用非张量积的方法构造。 0)(dtt傅里叶、小波变换假定函数 为二维母小波函数。 ),(),(),(22yxRLyxf令 .0,),(),(1,RaRcbacyabxayxcba(4-11) 由(4-11)式定义的,产生于二维母小波函

17、数,依赖于参数a、b、c的一组函数就是小波基函数。二维连续小波变换定义为: dxdybcyabxyxfacbaCWT),(),(),(1(4-12) 二维离散小波变换定义为: ZllcklabklallfakkjDWTjlljj210220011021021,),(),(),(21(4-13) 傅里叶、小波变换令式(4-13)中的,即得到常用的一种离散小波变换: ZllklklllfkkjDWTjlljj2122112121,),2,2(),(2),(21(4-14) 【注】母小波函数与小波基函数都是小波函数。 2.2.小波函数小波函数Haar小波就是一个常用的小波函数。(1)Haar小波Ha

18、ar小波是最早使用的、简单的紧支撑小波,Haar小波实际上是Daubechies小波族中的一个特例。 1 , 0, 015 . 0, 15 . 00, 1)(xxxx(4-15) 利用(4-15)可以构造出二维小波函数。 傅里叶、小波变换(2)Daubechies小波Daubechies小波也有相应的数学描述。其中在Matlab中称为db1 的Daubechies小波与Haar小波是相同的。下面不研究其数学描述,只通过图形显示一组二维Daubechies小波函数。傅里叶、小波变换3.3.逆二维小波变换逆二维小波变换二维连续小波变换的逆小波变换定义为: dbdcacyabxcbaCWTadacy

19、xf,),(1),(03(4-17) 其中, 2122212212|),(41ddc二维离散小波变换的逆小波变换公式可以通过式(4-17)得到。 假定对应于二维母小波 的对偶小波为: ),(yx),(),(),(1,acyabxayxyxcba则对应于式(4-12)至(4-14)有统一的逆小波变换(重构公式):cbacbacbacbayxfyxfyxf,),(),(),(式(4-18)中, 表示内积。 ,傅里叶、小波变换作为一种函数变换,小波变换也经常应用于图像处理中。1.1.小波变换函数的使用小波变换函数的使用Matlab提供了相当多与图像处理相关的小波函数,下面介绍几个函数的使用。【例4-

20、23】图像一层小波分解。设计下面程序:A0= imread(D:0011.jpg); A=rgb2gray(A0);A0= imread(D:0011.jpg); A=rgb2gray(A0);CA1,CH1,CV1,CD1=dwt2(A,db1);CA1,CH1,CV1,CD1=dwt2(A,db1);subplot(1,5,1); imshow(A)subplot(1,5,1); imshow(A)subplot(1,5,2); image(CA1); axis offsubplot(1,5,2); image(CA1); axis offsubplot(1,5,3); imshow(CH

21、1)subplot(1,5,3); imshow(CH1)subplot(1,5,4); imshow(CV1)subplot(1,5,4); imshow(CV1)subplot(1,5,5); imshow(CD1)subplot(1,5,5); imshow(CD1) 傅里叶、小波变换函数函数dwt2(A,db1)是对矩阵是对矩阵A进行一层小波变换,也称小进行一层小波变换,也称小波分解,波分解,db1指定使用的小波函数为一阶指定使用的小波函数为一阶Daubechies小波。小波。语句语句CA1,CH1,CV1,CD1=dwt2(A,db1)返回四个分解矩返回四个分解矩阵阵CA1,CH1,

22、CV1,CD1,分别称为近似系数矩阵、水平细节,分别称为近似系数矩阵、水平细节系数矩阵、垂直细节系数矩阵、对角细节系数矩阵。系数矩阵、垂直细节系数矩阵、对角细节系数矩阵。该例题中该例题中A为为480 640大小,大小,CA1,CH1,CV1,CD1均为均为240 320大小。为了比较方便,把这些矩阵图形排成一行显示在大小。为了比较方便,把这些矩阵图形排成一行显示在一起,但实际上后面图形的大小是原图像大小的四分之一。一起,但实际上后面图形的大小是原图像大小的四分之一。 (a) 原图像 (b) 近似CA1 (c)水平细节CH1 (d)垂直细节CV1 (e)对角细节CD1 图4-24 图像小波分解系

23、数矩阵(1) 从图从图4-24可以看出近似系数矩阵与原图像很接近,其他几个可以看出近似系数矩阵与原图像很接近,其他几个都是原图像的高频信息。都是原图像的高频信息。傅里叶、小波变换(a) 原图像 (b) 近似 (c) 水平细节 (d) 垂直细节 (e)对角细节 图4-27图像一阶小波重构(2) 【例4-25】使用逆小波变换函数idwt2进行图像重构。A0= imread(D:0011.jpg); A=rgb2gray(A0);A0= imread(D:0011.jpg); A=rgb2gray(A0);CA1,CH1,CV1,CD1=dwt2(A,db1);CA1,CH1,CV1,CD1=dwt

24、2(A,db1);AA=idwt2(CA1,CH1,CV1,CD1,db1);AA=idwt2(CA1,CH1,CV1,CD1,db1);B0= imread(D:3.jpg); B=rgb2gray(B0);B0= imread(D:3.jpg); B=rgb2gray(B0);CA2,CH2,CV2,CD2=dwt2(B,db1);CA2,CH2,CV2,CD2=dwt2(B,db1);BB=idwt2(CA2,CH2,CV2,CD2,db1);BB=idwt2(CA2,CH2,CV2,CD2,db1);subplot(1,4,1); imshow(A) subplot(1,4,1); i

25、mshow(A) subplot(1,4,2); image(AA); axis offsubplot(1,4,2); image(AA); axis offsubplot(1,4,3); imshow(B) subplot(1,4,3); imshow(B) subplot(1,4,4); image(BB); axis offsubplot(1,4,4); image(BB); axis off 设计左面程序:傅里叶、小波变换【例4-26】图像二层小波分解。 A0= imread(D:3.jpg); A=rgb2gray(A0);A0= imread(D:3.jpg); A=rgb2gra

26、y(A0); C S=wavedec2(A,2, bior1.3); C S=wavedec2(A,2, bior1.3); CA2=appcoef2(C,S, bior1.3,2); CA2=appcoef2(C,S, bior1.3,2); CH2=detcoef2(h,C,S,2); CH2=detcoef2(h,C,S,2); CV2=detcoef2(v,C,S,2); CV2=detcoef2(v,C,S,2); CD2=detcoef2(d,C,S,2); CD2=detcoef2(d,C,S,2); CH1=detcoef2(h,C,S,1); CH1=detcoef2(h,C

27、,S,1); CV1=detcoef2(v,C,S,1); CV1=detcoef2(v,C,S,1); CD1=detcoef2(d,C,S,1); CD1=detcoef2(d,C,S,1); subplot(2,4,1); imshow(A) subplot(2,4,1); imshow(A) subplot(2,4,5); image(CA2); axis off subplot(2,4,5); image(CA2); axis off subplot(2,4,6); imshow(CH2) subplot(2,4,6); imshow(CH2) subplot(2,4,7); imshow(CV2) subplot(2,4,7); imshow(CV2) subplot(2,4,8); imshow(CD2) subplot(2,4,8); imshow(CD2) subplot(2,4,2); imshow(CH1) subplot(2,4,2); imshow(CH1) subplot(2,4,3); imshow(CV1) subplot(2,4,3); imshow(CV1) subplot(2,4,4); imshow(CD1) subplot(2,4,4); imshow(CD1) 设计右面程序:傅里叶、小波变换程序的

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论