您好,欢迎访问三七文档
当前位置:首页 > IT计算机/网络 > 图形图像 > 小波Matlab代码
[x,map]=imread('MUCS_新建文件夹_32603.ptl_208.bmp');subplot(1,2,1);imshow(x);[c,s]=wavedec2(x,3,'sym4');Csize=size(c);fori=1:Csize(2)if(c(i)100)%低频分量----s中第一维的长度c(i)=1*c(i);elsec(i)=0.9*c(i);%高频分量endendx1=waverec2(c,s,'sym4');im=uint8(x1);subplot(1,2,2);imshow(im);[c,s]=wavedec2(X,2,'bior3.7');%对图像用小波进行层分解cal=appcoef2(c,s,'bior3.7',1);%提取小波分解结构中的一层的低频系数和高频系数ch1=detcoef2('h',c,s,1);%水平方向cv1=detcoef2('v',c,s,1);%垂直方向cd1=detcoef2('d',c,s,1);%斜线方向a1=wrcoef2('a',c,s,'bior3.7',1);%各频率成份重构[c,s]=wavedec2(X,1,'sym4');a1=appcoef2(c,s,'sym4',1);%小波分解结构中的一层的低频系数,下面是3个高频系数a1=2*a1;h1=detcoef2('h',c,s,1);v1=detcoef2('v',c,s,1);d1=detcoef2('d',c,s,1);h1=0.5*h1;v1=0.5*v1;d1=0.5*d1;y=idwt2(a1,h1,v1,d1,'sym4');loadwbarb;X1=X;map1=map;subplot(2,2,1);image(X1);colormap(map1);title('图像wbarb');loadwoman;X2=X;map2=map;subplot(2,2,2);image(X2);colormap(map2);title('图像woman');%=====================================%对上述二图像进行分解[c1,l1]=wavedec2(X1,2,'sym4');[c2,l2]=wavedec2(X2,2,'sym4');%对分解系数进行融合c=c1+c2;%=====================================%应用融合系数进行图像重构并显示XX=waverec2(c,l1,'sym4');subplot(2,2,3);image(XX);title('融合图像1');Csize1=size(c1);%=====================================%对图像进行增强处理fori=1:Csize1(2)c1(i)=1.2*c1(i);endCsize2=size(c2);forj=1:Csize2(2)c2(j)=0.8*c2(j);end%=====================================%通过减小融合系数以减小图像的亮度c=0.5*(c1+c2);%=====================================%对融合系数进行图像重构XXX=waverec2(c,l2,'sym4');%=====================================%显示重构结果subplot(2,2,4);image(XXX);title('融合图像2');%本程序实现下述功能:首先读入原始图像,并对它使用db3小波进行2层分解,%然后对分解系数进行处理突出所需,弱化不需要的部分%装载并显示原始图像clearall;clc;loadflujet;subplot(1,2,1);image(X);colormap(map);title('原始图像');%=====================================%对图像X用小波db3进行2层分解[c,l]=wavedec2(X,2,'db3');Csize=size(c);%=====================================%对分解系数作处理以突出所需部分并弱化不需要部分fori=1:Csize(2)if(c(i)300)%低频分量c(i)=2*c(i);elsec(i)=0.5*c(i);%高频分量endend%=====================================%重构图像并显示X1=waverec2(c,l,'db3');subplot(1,2,2);image(X1);colormap(map);title('增强图像');[c,s]=wavedec2(x,2,'sym4');Csize=size(c);fori=1:Csize(2)if(c(i)169)%低频分量----s中第一维的长度c(i)=2*c(i);elsec(i)=0.3*c(i);%高频分量endendx1=waverec2(c,s,'sym4');im=uint8(x1);imshow(im);二维小波变换的Matlab实现%oun\{K*Y二维小波变换的函数-------------------------------------------------函数名函数功能---------------------------------------------------'d3dtBe'x6gdwt2二维离散小波变换wavedec2二维信号的多层小波分解idwt2二维离散小波反变换waverec2二维信号的多层小波重构zH!f6~)}-P_wrcoef2由多层小波分解重构某一层的分解信号0E,\|.o|DT2@2b2K$Uupcoef2由多层小波分解重构近似分量或细节分量detcoef2提取二维信号小波分解的细节分量appcoef2提取二维信号小波分解的近似分量upwlev2二维小波分解的单层重构dwtpet2二维周期小波变换4Y/aN&Gq]EBH)Widwtper2二维周期小波反变换-------------------------------------------------------------9Od7D`by&lX{IgusI`(1)wcodemat函数功能:对数据矩阵进行伪彩色编码格式:Y=wcodemat(X,NB,OPT,ABSOL)'k#eCaI%HY=wcodemat(X,NB,OPT)i)E)p_!O-kjJ^Y=wcodemat(X,NB)Y=wcodemat(X)说明:Y=wcodemat(X,NB,OPT,ABSOL)返回数据矩阵X的编码矩阵Y;NB伪编码的最大值,即编码范围为0~NB,缺省值NB=16;OPT指定了编码的方式(缺省值为'mat'),即:r(o?Lj(yefNOPT='row',按行编码OPT='col',按列编码OPT='mat',按整个矩阵编码ABSOL是函数的控制参数(缺省值为'1'),即:ix^:|~5{ABSOL=0时,返回编码矩阵ABSOL=1时,返回数据矩阵的绝对值ABS(X)(2)dwt2函数DJ~0D/mS:OSI功能:二维离散小波变换Bct_)hOXI格式:[cA,cH,cV,cD]=dwt2(X,'wname')3AN_WF[cA,cH,cV,cD]=dwt2(X,Lo_D,Hi_D)说明:[cA,cH,cV,cD]=dwt2(X,'wname')使用指定的小波基函数'wname'对二维信号X进行二维离散小波变幻;cA,cH,cV,cD分别为近似分量、水平细节分量、垂直细节分量和对角细节分量;[cA,cH,cV,cD]=dwt2(X,Lo_D,Hi_D)使用指定的分解低通和高通滤波器Lo_D和Hi_D分解信号X。$Kv*SX2^8GQ7?M_dB(gd(3)wavedec2函数功能:二维信号的多层小波分解HFS)bp$G:i格式:[C,S]=wavedec2(X,N,'wname')[C,S]=wavedec2(X,N,Lo_D,Hi_D)说明:[C,S]=wavedec2(X,N,'wname')使用小波基函数'wname'对二维信号X进行N层分解;[C,S]=wavedec2(X,N,Lo_D,Hi_D)使用指定的分解低通和高通滤波器Lo_D和Hi_D分解信号X。7Yj~q5aHS4e1r(4)idwt2函数功能:二维离散小波反变换格式:X=idwt2(cA,cH,cV,cD,'wname')X=idwt2(cA,cH,cV,cD,Lo_R,Hi_R)X=idwt2(cA,cH,cV,cD,'wname',S)X=idwt2(cA,cH,cV,cD,Lo_R,Hi_R,S)说明:X=idwt2(cA,cH,cV,cD,'wname')由信号小波分解的近似信号cA和细节信号cH、cH、cV、cD经小波反变换重构原信号X;X=idwt2(cA,cH,cV,cD,Lo_R,Hi_R)使用指定的重构低通和高通滤波器Lo_R和Hi_R重构原信号X;X=idwt2(cA,cH,cV,cD,'wname',S)'z6Zex;o和X=idwt2(cA,cH,cV,cD,Lo_R,Hi_R,S)返回中心附近的S个数据点。(5)waverec2函数说明:二维信号的多层小波重构格式:X=waverec2(C,S,'wname')X=waverec2(C,S,Lo_R,Hi_R)说明:X=waverec2(C,S,'wname')由多层二维小波分解的结果C、S重构原始信号X,'wname'为使用的小波基函数;X=waverec2(C,S,Lo_R,Hi_R)使用重构低通和高通滤波器Lo_R和Hi_R重构原信号。s)A?*ni?+G
本文标题:小波Matlab代码
链接地址:https://www.777doc.com/doc-7873661 .html