您的位置:首页 > 其它

小波分解图像应用

2013-03-28 18:12 162 查看
最近学习了一段小波,对小波函数在信号处理中得应用有了大概的了解,对信号进行小波分解,主要过程就是求平均和细节,设{x1,x2}表示一个两元素的信号,a=(x1+x2)/2;d=(x1-x2)/2,二元素组{a,d}可表示原信号,并且

x1=a+d;x2=a-d;即由{a,d}可恢复原信号。这就是小波分解的思想。对于长度为N的信号,我们可以构造小波的滤波器组,滤波器的系数可能小于信号的长度,通过在滤波器后面补0的方法,使得信号的长度和滤波器的长度相等,然后和低通滤波器和高通滤波器做卷积运算,将信号分成两部分:低通部分和高通部分。二维图像的小波运算,先对行进行低通、高通卷积运算,再对列进行低通、高通运算,再进行信号的下采样,得到四个部分[LL,HL,LH,HH],其中LL保留了源图像的大部分能量。将低、高通滤波器求逆,既得恢复算法的滤波器,分别对行和列求卷积,再进行上采样,就可得恢复图像。

程序中调用的函数,均来自zyh的博客,在此应用一下,如有冒犯,敬请谅解。

clc;

clear;

clear all;

x=imread('cameraman.tif');

x=double(x);

subplot(131);

image(x);

colormap(gray);

title('源图像')

axis square;

[LL,HL,LH,HH]=mydwt2(x);

subplot(132);

image(LL);

title('一次小波后逼近图像')

axis square;

%subplot(223);

%image(LL,HL,LH,HH);

title('一次小波后')

y=myidwt2(LL,HL,LH,HH);

subplot(133);

image(y);

title('重构后得图像')

axis square;

figure(2);

subplot(221)

image(LL);

subplot(222);

image(HL);

subplot(223);

image(LH);

subplot(224);

image(HH);

colormap(gray);

>> whos

Name Size Bytes Class

HH 128x128 131072 double array

HL 128x128 131072 double array

LH 128x128 131072 double array

LL 128x128 131072 double array

x 256x256 524288 double array

y 256x256 524288 double array



内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: