图像的变换——dwt、idwt、wcodemat、dwt2、idwt2、wavedec2、waverec2

图像小波变换

一、一维小波变换

1. dwt函数

功能: 单级一维离散小波变换
句法:

  • [cA,cD] = dwt(x,wname)
    使用小波’wname’对信号X进行单层分解,求得的近似系数存放在数组cA中,细节系数存放在数组cD中
  • [cA,cD] = dwt(x,LoD,HiD)
    分别使用指定的低通和高通滤波器计算小波分解
  • [cA,cD] = dwt(…,‘mode’,extmode)
    使用指定的扩展模式计算小波分解。MODE是包含扩展模式的字符串。

代码示例:

%装载一维原始信号 
load noissin;%带噪声的正弦信号   
s=noissin(1:1000); %取信号的前1000个采样点
%画出原始信号的波形 
subplot(411);plot(s);  %函数subplot的作用是在标定位置上建立坐标系 
title('原始信号'); 
%下面用haar小波函数进行一维离散小波变换 
[ca1,cd1]=dwt(s,'haar'); 
subplot(4,2,3);plot(ca1); axis tight;%自动设置x轴和y轴的范围使图形区域正好占满整个显示空间
ylabel('haar(ca1)'); 
subplot(4,2,4);plot(cd1); axis tight;
ylabel('haar(cd1)'); 
%给定一个小波db2,计算与之相关的分解滤波器 
[Lo_D,Hi_D]=wfilters('db2','d'); 
%用分解滤波器Lo_D,Hi_D计算信号s的离散小波分解系数 
[ca2,cd2]=dwt(s,Lo_D,Hi_D); 
subplot(4,2,5);plot(ca2); axis tight;
ylabel('db2(ca2)'); 
subplot(4,2,6);plot(cd2); axis tight;
ylabel('db2(cd2)');

结果显示:
在这里插入图片描述
代码示例:

load noissin;  %装载信号 
s=noissin(1:1000); 
ls=length(s);  %计算信号点的个数ls 
%对s进行一维连续小波变换,把返回系数存到矩阵w中 
w=cwt(s,[12.12,10.24,15.48,1.2,2:2:10],'db3','plot');   
xlabel('时间'); 
ylabel('变换尺度'); 
title('对应于尺度a=12.12,10.24,15.48,1.2,2,4,6,8,10小波变换系数的绝对值');

结果显示:
在这里插入图片描述

2.idwt函数

功能: 单级逆离散一维小波变换
句法:

  • x = idwt(cA,cD,’wname‘)
    返回基于近似和细节系数向量CA和CD,并使用小波“wname”的单层重构近似系数向量X

代码示例:

load noisdopp;% 装载信号
[A,D] = dwt(noisdopp,'sym4');%使用Symlet(symN)小波
x = idwt(A,D,'sym4');
max(abs(noisdopp-x))

运行结果:
在这里插入图片描述

  • x = idwt(cA,cD,LoR,HiR)
    如上所述,使用指定的过滤器进行重建:
    LoR是重构低通滤波器。
    HiR是重建高通滤波器。
    LoR和HiR的长度必须相同。

代码示例:

load noisdopp;
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值