资源简介

小波变换在图像压缩中的应用,用MATLAB实现时因为MATLAB自带小波分析工具箱,所以编程比较简便,主要是算法要理解。这里附上了4个程序代码,1是局部压缩,2、3是两个压缩实例(EZW算法,让部分高频系数置零),4是阈值确定实例。载入图像时MATLAB软件自带的,因此不需要转换图像格式等语句。另外,一些函数的不理解的,可以查看help看函数的意义。因为实验结果上传起来比较费时,所以只给了源文件。仅供学习参考。希望能起到帮助作用

资源截图

代码片段和文件信息

%基于小波变换的图像局部压缩
load wbarb
%使用sym4小波对信号进行一层小波分解
[calchlcvlcdl]=dwt2(X‘sym4‘);
codcal=wcodemat(cal192);
codchl=wcodemat(chl192);
codcvl=wcodemat(cvl192);
codcdl=wcodemat(cdl192);
%将四个系数图像组合成一个图像
codx=[codcalcodchlcodcdlcodcdl]
%复制原图像的小波系数
rcal=cal;
rchl=chl;
rcvl=cvl;
rcdl=cdl;
%将三个细节系数的中部置零
rchl(33:9733:97)=zeros(6565);
rcvl(33:9733:97)=zeros(6565);
rcdl(33:9733:97)=zeros(6565);
codrcal=wcodemat(rcal192);
codrchl=wcodemat(rchl192);
codrcvl=wcodemat(rcvl192);
codrcdl=wcodemat(rcdl192);
%将处理后的系数图像组合为一个图像
codrx=[codrcalcodrchlcodrcvlcodrcdl]
%重建处理后的系数
rx=idwt2(rcalrchlrcvlrcdl‘sym4‘);
subplot(221);image(wcodemat(X192))colormap(map);title(‘原始图像‘);
subplot(222);image(codx)colormap(map);title(‘一层分解后各层系数图像‘);
subplot(223);image(wcodemat(rx192))colormap(map);title(‘压缩图像‘);
subplot(224);image(codrx)colormap(map);title(‘处理后各层系数图像‘);
%求压缩信号的能量成分
per=norm(rx-X)
per=1.0000
%求压缩信号与原信号的标准差
err=norm(rx-X)
err=586.4979

 属性            大小     日期    时间   名称
----------- ---------  ---------- -----  ----

     文件       1123  2010-05-10 10:15  wavelet -image compression\compression1.m

     文件       1330  2010-05-02 16:14  wavelet -image compression\compression2.m

     文件        623  2010-05-10 10:27  wavelet -image compression\compression3.m

     文件       1190  2010-05-10 11:03  wavelet -image compression\compression4.m

     目录          0  2010-05-13 16:54  wavelet -image compression

----------- ---------  ---------- -----  ----

                 4266                    5


评论

共有 条评论