您好,欢迎访问三七文档
小波分析把图像分解为两部分:低频信息+高频信息。低频信息是变化缓慢的部分,是图像的框架,也是轮廓,占全部信息的大部分;高频信息是变化迅速的部分(如从黑色跳变到白色),它反映的是图像的细节信息,占全部信息的小部分。以上是第一层分解。在第一层的基础上把高频信息部分再分解为两部分:低频+高频。第三层是把第二层分解出来的高频信息分解为低频+高频...依次类推。以上是单尺度分解,低频部分不进行再分解。若是多尺度分解,会把低频部分像高频部分那样一层一层分解。[c,l]=wavedec(s,3,'db1');l是length的意思,记录的是由高到低各级的长度。s代表进行分解的变量;3代表分解层数对1张图象进行小波分解,可以在MATLAB中实现。在COMMANDWINDOWS窗口中直接输入wavedemo进入说明,wavemenu进使用程序,也可以直接编程。程序在wavedemo里面自带。DWT2是二维单尺度小波变换,其可以通过指定小波或者分解滤波器进行二维单尺度小波分解。而WAVEDEC2是二维多尺度小波分解。DWT2的一种语法格式是[cA,cH,cV,cD]=dwt2(X,'wname');而对应的WAVEDEC2的语法格式是[C,S]=wavedec2(X,N,'wname'),其中N为大于1的正整数。也就是说DWT2只能对某个输入矩阵X进行一次分解,而WAVEDEC2可以对输入矩阵X进行N次分解。padarray功能:填充图像或填充数组。用法:B=padarray(A,padsize,padval,direction)A为输入图像,B为填充后的图像,padsize给出了给出了填充的行数和列数,通常用[rc]来表示。padval表示填充方法。它的具体值和描述如下:padval:'symmetric'表示图像大小通过围绕边界进行镜像反射来扩展;'replicate'表示图像大小通过复制外边界中的值来扩展;'circular'图像大小通过将图像看成是一个二维周期函数的一个周期来进行扩展。direction表示填充的方向。它的具体值和描述如下:direction:'pre'表示在每一维的第一个元素前填充;'post'表示在每一维的最后一个元素后填充;'both'表示在每一维的第一个元素前和最后一个元素后填充,此项为默认值。若参量中不包括direction,则默认值为'both'。若参量中不包含padval,则默认用零来填充。若参量中不包括任何参数,则默认填充为零且方向为'both'。在计算结束时,图像会被修剪成原始大小。提取小波系数的matlab程序%装载leleccum信号loadleleccum;s=leleccum(1:3920);%用db1小波函数对信号进行三尺度小波分解[C,L]=wavedec(s,2,'db1');figure(1);plot(s);title('leleccum原始信号');%提取尺度1的低频系数cA1=appcoef(C,L,'db1',1);%用小波分解框架[C.L]计算1层低频系数的近似值,小波基为db1%提取尺度2的低频系数cA2=appcoef(C,L,'db1',2);figure(2);subplot(2,1,1);plot(cA1);title('尺度1的低频系数');subplot(2,1,2);plot(cA2);title('尺度2的低频系数');%提取尺度1的高频系数cD1=detcoef(C,L,1);%用小波分解框架[C.L]计算1层高频系数的近似值,小波基为db1%提取尺度2的高频系数cD2=detcoef(C,L,2);figure(3);subplot(2,1,1);plot(cD1);title('尺度1的高频系数');subplot(2,1,2);plot(cD2);title('尺度2的高频系数');X=imread('lena.bmp');X=double(X);%%%%%%%%%%用小波函数db1对信号X进行尺度为23的分解%%%%%%[c,s]=wavedec2(X,3,'db1');sizex=size(X);sizec=size(c);val_s=s;%%%%%%%%%%%%%%%%%%提取尺度为3的低频系数%%%%ca3=appcoef2(c,s,'db1',3);sizeca3=size(ca3);%%%%%%%%%%%%%%%%%提取尺度为2的低频系数%%%%ca2=appcoef2(c,s,'db1',2);sizeca2=size(ca2);%%%%%%%%%%%%%%%%%尺度为1的低频系数ca1=appcoef2(c,s,'db1',1);sizeca1=size(ca1);
本文标题:小波分解
链接地址:https://www.777doc.com/doc-3718623 .html