小波变换

Python016

小波变换,第1张

我给你大概标注了一下,但是你的程序有问题,

% 小波图像压缩 - RGB 图像

clear all

close all

% 读取图像

im = input('输入图像')%输入图像名称,要加分号

X=imread(im)

% 输入要分解的小波层数和小波

n=input('输入要分解的小波层数')%输入所要分解的层数

wname = input('输入小波名称')%输入小波名称,也要加分号

x = double(X)

NbColors = 255

map = gray(NbColors)

x = uint8(x)

%把RGB图像转换成灰度图

% x = double(X)

% xrgb = 0.2990*x(:,:,1) + 0.5870*x(:,:,2) + 0.1140*x(:,:,3)

% colors = 255

% x = wcodemat(xrgb,colors)

% map = pink(colors)

% x = uint8(x)

% 对图像x进行n维小波分解

[c,s] = wavedec2(x,n,wname)

% 使用默认参数选择各层不同的阈值

alpha = 1.5m = 2.7*prod(s(1,:))

[thr,nkeep] = wdcbm2(c,s,alpha,m)

% 使用上面的阈值和硬阈值处理进行图像压缩

[xd,cxd,sxd,perf0,perfl2] = wdencmp('lvd',c,s,wname,n,thr,'h')

disp('压缩效率')

disp(perf0)

% 重构(下面这个地方有问题,你这里是原始图像小波变换后进行重构,xd才是小波阀值压缩后重构的图像,cxd,sxd,是c,s经过阀值处理后得到的小波分解结构,也就是说xd=waverec2(cxd,sxd,wname)这个wdencmp函数不需要另外进行重构,你下面那些关于重构的都没用,而下面压缩后的图像才是重构后的图像,)

R = waverec2(c,s,wname)

rc = uint8(R)

% 显示原始图像和压缩图像

subplot(221), image(x)

colormap(map)

title('原始图像')

subplot(222), image(xd)

colormap(map)

title('压缩后的图像')

% 显示结果

xlab1 = ['图像压缩后保留能量百分比',num2str(perfl2)]

xlab2 = ['小波阀值压缩后置零系数百分比 ',num2str(perf0), ' %']

xlabel([xlab1 xlab2])

subplot(223), image(rc)

colormap(map)

title('重构图像')

%计算图像大小

disp('原始图像')

imwrite(x,'original.tif')%将图像x保存为original.tif,下同

imfinfo('original.tif')%显示图片original.tif详细信息,下同

disp('压缩后的图像')

imwrite(xd,'compressed.tif')

imfinfo('compressed.tif')

disp('重构后的图像')

imwrite(rc,'decompressed.tif')

imfinfo('decompressed.tif')

小波变换是一种线性运算,它把一个信号分解成不同尺度上的成分,变换是基于信号和一个放大滤波器的褶积。

1. 连续小波变换定义为

物探数字信号分析与处理技术

其中系列函数

物探数字信号分析与处理技术

称为小波函数 ( Wavelet Function) 或简称小波。它是由函数 ψ ( t) 经过不同的时间尺度伸缩 ( Time Scale Dilation) 和不同的时间平移 ( Time Translation) 得到的。因此 ψ ( t)是小波原型 ( Wavelet Prototype) ,并称为母小波 ( Mother Wavelet) 或基本小波 ( 图14-1) 。

图 14-1-1 小波与母小波

式(14-1-2)中b是时间平移参数,不同的b表明小波沿时间轴移动到不同的位置上a是时间轴尺度伸缩参数,系数|a|-1/2是归一化因子,它的引入是为了让不同尺度的小波能保持相等的能量。若|a|>1,则小波函数ψ(t)在时间轴上被拉宽而振幅被压低,ψa,b(t)含有表现低频量的特征若|a|<1,则小波函数ψ(t)在时间轴上被压窄而振幅被拉高,ψa,b(t)含有表现高频量的特征。

图14-1-1中ψ(t)是中心为t0、有效宽度为Dt的母小波,ψa,b(t)是由ψ(t)经尺度变换及平移得到的小波,其小波的中心为at0+b,宽度为aDt。

将式(14-1-2)代入(14-1-1)中,得到简化的定义式

物探数字信号分析与处理技术

式(14-1-3)中称(Wψf)(a,b)为小波系数。此式说明,连续小波变换可看作是信号f(t)与小波ψa,b(t)的内积。该式定量地表示了信号与小波函数中的每个小波相关或接近的程度。如果把小波看成是L2(R)空间的基函数,则连续小波变换就是信号在基函数系上的分解或投影。并且f(t)可由(Wψf)(a,b)重构。小波逆变换定义为

物探数字信号分析与处理技术

逆变换公式的存在说明连续小波变换是保留了信号的全部信息,能够用它完全刻画信号的特征。

2.连续小波变换的性质

(1)线性:一个多分量信号的小波变换等于各个分量的小波变换之和。

(2)平移不变性:若f(t)的小波变换为(Wψf)(a,b),则f(t-τ)的小波变换为(Wψf)(a,b-τ)。

(3)伸缩共变性:若f(t)的小波变换(Wψf)(a,b),则f(ct)的小波变换为(Wψf)(ca,cb)/c1/2(c>0),也称此性质为协变性。

(4)自相似性:对应不同尺度参数a和不同平移参数b的连续小波变换之间是自相似的。

(5)冗余性:小波变换的冗余性主要表现在由连续小波变换恢复原信号的重构公式不是唯一的。即信号f(t)的小波变换与小波重构不存在一一对应关系另外小波变换的核函数即小波函数ψa,b(t)存在许多可能的选择。