⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 wavefilter.m

📁 开发的两个小波变换函数对图像进行小波变换
💻 M
字号:
function [varargout]=wavefilter(wname,type)
error(nargchk(1,2,nargin));
if(nargin==1 & nargout~=4)|(nargin==2 & nargout~=2)
    error('invalid number of output arguments.');
end
if nargin==1 &~ischar(wname)
    error('wname must be a string.');
end
if nargin==2 & ~ischar(type)
    error('type must be a string.');
end
switch lower(wname)    
    case('haar','dbl')
        ld=[1 1]/sqrt(2); hd=[-1 1]/sqrt(2);
        lr=ld; hr=-hd;
    case 'db4'
        ld=[-1.059740178499728e-002 3.288301166698295e-002...
                3.084138183598697e-002 -1.870348117188811e-001...
                -2.798376941698385e-002 6.308807679295904e-001...
                7.148465705525415e-001 2.303778133088552e-001];
        t=(0:7);
        hd=ld; hd(end:-1:1)=cos(pi*t).*ld;
        lr=ld; lr(end:-1:1)=ld;
        hr=cos(pi*t).*ld;
    case 'sym4'
        ld=[-7.576571478927333e-002 -2.963552764599851e-002...
            4.976186676320155e-001 8.037387518059161e-001...
            2.978577956052774e-001 -9.921954357684722e-002...
            -1.260396726203783e-002 3.222310060404270e-002];
    t=(0:7);
    hd=ld; hd(end:-1:1)=cos(pi*t).*ld;
    lr=ld; lr(end:-1:1)=ld;
    hr=cos(pi*t).*ld;
case 'bior6.8'
        ld=[0 1.908831736481291e-003 -1.914286129088767e-003...
              -1.699063986760234e-002 1.193456527972926e-002...
              4.973290349094079e-002 -7.726317316720414e-002...
              -9.405920349573646e-002 4.207962846098268e-001...
              8.259229974584023e-001 4.207962846098268e-001...
              -9.405920349573646e-002 -7.726317316720414e-002...
              4.973290349094079e-002 1.193456527972926e-002...
              -1.699063986760234e-002 -1.914286129088767e-003...
              1.908831736481291e-003];
      hd=[0 0 0 1.442628250562444e-002 -1.446750489679015e-002...
          -7.872200106262882e-002 4.036797903033992e-002...
          4.178491091502746e-001 -7.589077294536542e-001...
          4.178491091502746e-001 4.036797903033992e-002...
          -7.872200106262882e-002 -1.446750489679015e-002...
          1.442628250562444e-002 0 0 0 0];
  t=(0:17);
  lr=cos(pi*(t+1)).*hd;
  hr=cos(pi*t).*ld;
case 'jpeg9.7'
    ld=[0 0.02674875741080976 -0.01686411844287495...
        -0.07822326652898785 0.2668641184428723...
        0.6029490182363579 0.2668641184428723...
        -0.07822326652898785 -0.01686411844287495...
        0.02674875741080976];
    hd=[0 -0.09127176311424948 0.05754352622849957...
         0.5912717631142470 -1.115087052456994...
         0.5912717631142470 0.05754352622849957...
         -0.09127176311424948 0 0];
 t=(0:9);
 lr=cos(pi*(t+1).*hd;
 hr=cos(pi*t).*ld;
otherwise
    error('unrecognizable wavelet name (wname).');
end
if (nargin==1)
    varagout(1:4)={ld,hd,lr,hr};
else
    switch lower(type(1))
        case 'd'
            varargout={ld,hd};
        case 'r'
            varargout={lr,hr};
        otherwise
            error('unrecognizable filter type.');
    end 
end
                

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -