小波分析用于图像压缩_第1页
小波分析用于图像压缩_第2页
小波分析用于图像压缩_第3页
小波分析用于图像压缩_第4页
小波分析用于图像压缩_第5页
已阅读5页,还剩5页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、精选优质文档-倾情为你奉上小波分析用于图像压缩1.1 基于小波变换的图像局部压缩基于离散余弦变换的图像压缩算法,其基本思想是在频域对信号进行分解,去除信号点之间的相关性,并找出重要系数,滤掉次要系数,以达到压缩的效果,但该方法在处理过程中并不能提供时域的信息,在我们比较关心时域特性的时候显得无能为力。但是这种应用的需求是很广泛的,比如遥感测控图像,要求在整幅图像有很高压缩比的同时,对热点部分的图像要有较高的分辨率,例如医疗图像,需要对某个局部的细节部分有很高的分辨率,单纯的频域分析的方法显然不能达到这个要求,虽然可以通过对图像进行分块分解,然后对每块作用不同的阈值或掩码来达到这个要求,但分块大

2、小相对固定,有失灵活。在这个方面,小波分析的就优越的多,由于小波分析固有的时频特性,我们可以在时频两个方向对系数进行处理,这样就可以对我们感兴趣的部分提供不同的压缩精度。下面这个局部压缩的例子利用了小波变化的时频局部化特性,通过这个例子可以看出小波变换在应用这类问题上的优越性。具体程序见附录。运行结果如图1.1。图1.1 利用小波变换的局部压缩图像从图1.1可以看出,小波域的系数表示的是原图像各频率段的细节信息,并且给我们提供了一种位移相关的信息表述方式,我们可以通过对局部细节系数处理来达到局部压缩的效果。在本例中,把图像中部的细节系数都置零,从压缩图像中可以很明显地看出只有中间部分变得模糊(

3、比如在原图中很清晰的围巾的条纹不能分辨),而其他部分的细节信息仍然可以分辨的很清楚。本例只是为了演示小波分析应用在图像局部压缩的方法,在实际的应用中,可能不会只做一层变换,而且作用阈值的方式可能也不会是将局部细节系数全部清除,更一般的情况是在N层变换中通过选择零系数比例或能量保留成分作用不同的阈值,实现分片的局部压缩。而且,作用的阈值可以是方向相关的,即在三个不同方向的细节系数上作用不同的阈值。1.2 小波变换用于图像压缩的一般方法二维小波分析用于图像压缩是小波分析应用的一个重要方面。它的特点是压缩比高,压缩速度快,压缩后能保持图像的特征基本不变,且在传递过程中可以抗干扰。小波分析用于图像压缩

4、具有明显的优点。1.2.1 利用二维小波分析进行图像压缩 基于小波分析的图像压缩方法很多,比较成功的有小波包、小波变换零树压缩、小波变换矢量量化压缩等。下面是一个图像信号(即一个二维信号,文件名为wbarb.mat),利用二维小波分析对图像进行压缩。一个图像作小波分解后,可得到一系列不同分辨率的子图像,不同分辨率的子图像对应的频率是不相同的。高分辨率(即高频)子图像上大部分点的数值都接近于0,越是高频这种现象越明显。对一个图像来说,表现一个图像最主要的部分是低频部分,所以一个最简单的压缩方法是利用小波分解,去掉图像的高频部分而只保留低频部分。图像压缩可按附录中的程序进行处理。图像对比如图1.2

5、所示。可以看出,第一次压缩提取的是原始图像中小波分解第一层的低频信息,此时压缩效果较好,压缩比较小(约为1/3);第二次压缩是提取第一层分解低频部分的低频部分(即小波分解第二层的低频部分),其压缩比较大(约为1/12),压缩效果在视觉上也基本过的去。这是一种最简单的压缩方法,只保留原始图像中低频信息,不经过其他处理即可获得较好的压缩效果。在上面的例子中,我们还可以只提取小波分解第3、4、层的低频信息。从理论上说,可以获得任意压缩比的压缩图像。 图1.2 利用二维小波分析进行图像压缩下面再给出用wdenemp函数对一个图像(文件名tire.mat)进行压缩的程序。具体程序清单见附录。图像对比如图

6、1.3所示:原始图像 压缩图像 图1.3 利用二维小波分析对图像进行压缩利用二维小波变换进行图像压缩时,小波变换将图像从空间域变换到时间域,它的作用与以前在图像压缩中所用到的离散余弦(DCT)、傅立叶变换(FFT)等的作用类似。但是要很好的进行图像的压缩,需要综合的利用多种其他技术,特别是数据的编码与解码算法等,所以利用小波分析进行图像压缩通常需要利用小波分析和许多其他相关技术共同完成。1.2.2 二维信号压缩中的阈值的确定与作用命令由于阈值处理只关心系数的绝对值,并不关心系数的位置,所以二维小波变换系数的阈值化方法同一维情况大同小异,为了方便用户使用小波工具箱对某些阈值化方法提供了专门的二维

7、处理命令。下面这个例子可以说明二维信号的小波压缩的一般方法,在这个例子中同时采用了求缺省阈值的ddencmp命令和基于经验公式的wdcbm2命令对图像进行压缩,并对压缩效果进行比较。具体程序见附录。显示结果如图1.4所示。图1.4 detfingr图像的全局阈值化压缩和分层阈值化压缩可见分层阈值化压缩方法同全局阈值化方法相比,在能量损失不是很大的情况下可以获得最高的压缩比,这主要是因为层数和方向相关的阈值化方法能利用更精细的细节信息进行阈值化处理。1.3 基于小波包变换的图像压缩小波分析之所以在信号处理中有着强大的功能,是基于其分离信息的思想,分离到各个小波域的信息除了与其他小波域的关联,使得

8、处理的时候更为灵活。全局阈值化方法作用的信息密度太大,不够精细,所以很难同时获得高的压缩比和能量保留成分,在作用的分层阈值以后,性能明显提高,因为分层阈值更能体现信号固有的时频局部特性。但是小波分解仍然不够灵活,分解出来的小波树只有一种模式,不能完全地体现时频局部化信息。而压缩的核心思想既是尽可能去除各小波域系数之间的信息关联,最大限度体现时频局部化的信息,因此,实际的压缩算法多采用小波包算法,而小波树的确定则是根据不同的信息论准则,以达到分解系数表达的信息密度最高。下面这个例子说明了小波包分析在图像压缩中的应用,并给出性能参数以便于同基于小波分析的压缩进行比较。具体程序见附录。得到的压缩结果

9、如图1.5所示。图1.5 基于小波包分析的图像压缩压缩过程中使用的最优小波数如图1.6所示图4.6 最优小波树这两个命令是Matlab小波工具箱提供的自动获取阈值和自动使用小波包压缩的命令,后者将分解阈值化和重建综合起来。在将小波包用于信号压缩的过程中,ddencmp命令返回的最优小波树标准都是阈值化标准。根据这个标准确定的最优小波树可以使得压缩过程的零系数成分最高,并且自动降低计算量。对高频成分很多的图像,小波包的分解细节信息的特点尤其能发挥其优势。正因为这点,FBI的指纹库就是采用的基于小波包的压缩算法WSQ。图像压缩是应用非常广泛的一类问题,所以其机器实现效率是至关重要的,在实际的应用中

10、,如JPEG2000,一般不采用通常的mallat算法做小波分解,而是应用特定的双正交小波,利用其滤波器分布规则的特性,用移位操作来实现滤波操作。附录load wbarb%使用sym4小波对信号进行一层小波分解ca1,ch1,cv1,cd1=dwt2(X,sym4);codca1=wcodemat(ca1,192);codch1=wcodemat(ch1,192);codcv1=wcodemat(cv1,192);codcd1=wcodemat(cd1,192);%将四个系数图像组合为一个图像codx=codca1,codch1,codcv1,codcd1%复制原图像的小波系数rca1=ca1

11、;rch1=ch1;rcv1=cv1;rcd1=cd1;%将三个细节系数的中部置零rch1(33:97,33:97)=zeros(65,65);rcv1(33:97,33:97)=zeros(65,65);rcd1(33:97,33:97)=zeros(65,65);codrca1=wcodemat(rca1,192);codrch1=wcodemat(rch1,192);codrcv1=wcodemat(rcv1,192);codrcd1=wcodemat(rcd1,192);%将处理后的系数图像组合为一个图像codrx=codrca1,codrch1,codrcv1,codrcd1%重建处

12、理后的系数rx=idwt2(rca1,rch1,rcv1,rcd1,sym4);subplot(221);image(wcodemat(X,192),colormap(map);title(原始图像);subplot(222);image(codx),colormap(map);title(一层分解后各层系数图像);subplot(223);image(wcodemat(rx,192),colormap(map);title(压缩图像);subplot(224);image(codrx),colormap(map);title(处理后各层系数图像);%求压缩信号的能量成分per=norm(rx

13、)/norm(X)per =1.0000%求压缩信号与原信号的标准差err=norm(rx-X)err = 586.4979附录%装入图像load wbarb;%显示图像subplot(221);image(X);colormap(map)title(原始图像);axis squaredisp(压缩前图像X的大小:);whos(X)%对图像用bior3.7小波进行2层小波分解c,s=wavedec2(X,2,bior3.7);%提取小波分解结构中第一层低频系数和高频系数ca1=appcoef2(c,s,bior3.7,1);ch1=detcoef2(h,c,s,1);cv1=detcoef2(

14、v,c,s,1);cd1=detcoef2(d,c,s,1);%分别对各频率成分进行重构a1=wrcoef2(a,c,s,bior3.7,1);h1=wrcoef2(h,c,s,bior3.7,1);v1=wrcoef2(v,c,s,bior3.7,1);d1=wrcoef2(d,c,s,bior3.7,1);c1=a1,h1;v1,d1;%显示分解后各频率成分的信息subplot(222);image(c1);axis squaretitle(分解后低频和高频信息);%下面进行图像压缩处理%保留小波分解第一层低频信息,进行图像的压缩%第一层的低频信息即为ca1,显示第一层的低频信息%首先对第

15、一层信息进行量化编码ca1=appcoef2(c,s,bior3.7,1);ca1=wcodemat(ca1,440,mat,0);%改变图像的高度ca1=0.5*ca1;subplot(223);image(ca1);colormap(map);axis squaretitle(第一次压缩);disp(第一次压缩图像的大小为:);whos(ca1)%保留小波分解第二层低频信息,进行图像的压缩,此时压缩比更大%第二层的低频信息即为ca2,显示第二层的低频信息ca2=appcoef2(c,s,bior3.7,2);%首先对第二层信息进行量化编码ca2=wcodemat(ca2,440,mat,0

16、);%改变图像的高度ca2=0.25*ca2;subplot(224);image(ca2);colormap(map);axis squaretitle(第二次压缩);disp(第二次压缩图像的大小为:);whos(ca2)输出结果如下所示:压缩前图像X的大小: Name Size Bytes Class X 256x256 double arrayGrand total is 65536 elements using bytes第一次压缩图像的大小为: Name Size Bytes Class ca1 135x135 double arrayGrand total is 18225 el

17、ements using bytes第二次压缩图像的大小为: Name Size Bytes Class ca2 75x75 45000 double arrayGrand total is 5625 elements using 45000 bytes附录%装入一个二维信号load tire;%显示图像subplot(221);image(X);colormap(map)title(原始图像);axis square%下面进行图像压缩%对图像用db3小波进行2层小波分解c,s=wavedec2(X,2,db3);%使用wavedec2函数来实现图像的压缩thr,sorh,keepapp=dd

18、encmp(cmp,wv,X);%输入参数中选择了全局阈值选项gbl,用来对所有高频系数进行相同的阈值量化处理Xcomp,cxc,lxc,perf0,perfl2=wdencmp(gbl,c,s,db3,2,thr,sorh,keepapp);%将压缩后的图像与原始图像相比较,并显示出来subplot(222);image(Xcomp);colormap(map)title(压缩图像);axis squaredisp(小波分解系数中置0的系数个数百分比:);perf0disp(压缩后图像剩余能量百分比:);perfl2输出结果如下所示:小波分解系数中置0的系数个数百分比:perf0 =49.1

19、935压缩后图像剩余能量百分比:perfl2 =99.9928附录load detfingr;%求得颜色映射表的长度,以便后面的转换nbc=size(map,1);%用缺省方式求出图像的全局阈值thr,sorh,keepapp=ddencmp(cmp,wv,X);thrthr = 3.5000%对图像作用全局阈值xd,cxd,lxd,perf0,perfl2=wdencmp(gbl,X,bior3.5,3,thr,sorh,keepapp);%用bior.3.5小波对图像进行三层分解c,s=wavedec2(X,3,bior3.5);%指定Birge-Massart策略中的经验系数alpha=1.5;m=2.7*prod(s(1,:);根据各层小波系数确定分层阈值thr1,nkeep1=wdcbm2(c,s,alpha,m);%对原图像作用分层阈值xd1,cxd1,sxd1,perf01,perfl21=wdencmp(lvd,c,s,bior3.5,3,thr1,s);thr1thr1 = 14.7026 68.4907 93.8430 14.7026 68.4907 93.8430 14.7026 68.4907 93.8430%将颜色映射表转换为灰度映射表colormap(pink(nbc);subplot(221);image(wcodemat(X,

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论