摘 要: 提出了一种先去噪再利用小波变换的图像压缩方法,用Matlab软件编程实现算法。实验仿真结果显示,图像在具有高压缩比的同时,重构图像的质量也较优;使用不同的小波基函数,效果不同。
关键词: 小波变换;图像压缩;图像去噪;重构图像
随着计算机、通信、电子信息技术的快速发展,人们的生活与图像紧密相连,如数字电视图像、3G通信、彩信、导航系统图像、视频图像防盗系统等。然而图像信息包含的信息量巨大,这给储存、处理和传输带来了很多困难,这也是相关技术发展的瓶颈。不断地增加信道带宽和储存容量并不能解决根本问题,而现有技术已经显得力不从心。解决问题的根本就是必须要对图像信息进行压缩处理,在保证一定图像质量的基础上,能用尽可能少的信息量表示重构的原始图像,即用最少的信息还原出最近似原始图像的重构图像。图像压缩技术在20世纪60年代后开始发展起来,80年代小波变换的理论被提出后,图像压缩技术备受关注并成为热门的研究技术。
1 图像压缩技术
1.1 图像压缩的可能性
图像信息能够进行压缩处理是因为图像具有以下特点:(1)在空域上,图像具有很强的相关性;(2)在频域上,图像的低频分量多,高频分量少;(3)人眼在观察图像时有暂留和掩盖现象,因此,可以去除一些信息又不至于影响视觉效果。
1.2 图像压缩技术的发展
一般将基于信息论和数字信号处理的图像压缩技术称为第一代压缩技术,而将结合人类视觉特性、心理特性的图像压缩技术称为第二代压缩技术。第一代压缩技术以信源编码理论为基础,使信源的概率分布尽可能非均匀或是去除信源符号间的相关性,从而达到压缩的目的。第二代压缩技术则注重于利用人类的生理特点来获得高压缩比,涉及的理论领域多,如基于分形理论、小波理论等。小波理论在近三十年发展迅速,成为图像处理的核心理论。图像压缩的国际新标准JPEG2000就是采用基于小波理论的新一代压缩技术。
2 小波变换
2.1 小波及相关概念
小波是一类在有限区间内快速衰减到0的函数。小波分析就是将信号分解为原小波(也叫小波基)函数不同位移和膨胀的小波。而小波变换就是采用小波理论,将原始信号进行处理,使其具有某些更适合后续处理的时频特性。小波变换因具有良好的空域、频域局部化,多分辨率,时间复杂度低等特性,特别适合处理非平稳信号,数字图像是典型的非平稳二维信号。
2.2 图像的小波变换
图像小波变换采用二维小波变换快速算法,就是不断将上一级图像分解成4个子带。以原图像为初始信号,经过一组高通和低通滤波器,将原始信号分解成4个子带,即一个低频子带(LL)和3个高频子带(HL、LH、HH)。其中,LL是近似图像,HL是水平细节图像,LH是垂直细节图像,HH是对角细节图像。这叫作一级小波分解,这种分解可以迭代,但是只针对上一级的低频子图像,理论上可以进行无限级分解,但是在图像压缩上,需要考虑重构图像的质量,所以最好不超过5级,一般采用3级小波分解。图1是小波三层小波分解示意图。
图像进行小波变换后,并没有实现能量的压缩,而只是对整个图像的信号能量进行重新分配。低频子图像包含了大部分的图像信息,高频子图像上大部分点的数值都接近0,越是高频这种现象越明显。对于一个图像来说,表现一个图像最主要的部分就是低频部分。所以可以充分利用这一变换后的特性,采用适当的方法对变换后的小波系数进行组织,最常用的方法就是只保留低频系数,对其进行小量化,而用大量化将高频系数尽可能置0,以实现图像信息的有效压缩。基于小波变换的图像压缩处理过程是:将输入的原始图像进行小波变换,根据处理需要将小波变换的系数矩阵进行量化编码,再通过小波逆变换重构图像。
3 算法与实现
3.1 算法描述
任何图像信号经过拍摄、扫描、传输等方法存储到计算机内进行处理时,都不可避免地包含各种噪声信号,而噪声信号往往是导致信噪比下降的主要因素,导致原始图像在后续的处理中效果不尽人意。研究发现,所有噪声几乎都集中在高频率部分,所以可以先对图像进行高频去噪处理。
本文算法步骤如下:
(1)利用Matlab软件提供的小波工具箱中的函数ddencmp和wdencmp函数对输入的图像用小波进行除噪处理。利用这两个函数去噪,有4个去噪参数可供选择,不同的参数有不同的效果。
(2)将经过小波去噪处理后的图像进行小波变换。在这里最关键的就是对小波基的选择,因为不同的小波函数具有不同的时频局域性,对恢复的图像质量至关重要。小波基函数在选择上一般要遵循的原则是:具有紧支集、正则性好、消失矩大。紧支集可以无冗余地表征图像信号;正则性可获得好的图像特征,即小波的正则性越大,分解后的小波图像各高频子带的能量就越集中于图像的边缘附近;消失矩则表明了小波变换后信息能量的集中程度,消失矩越大,分解后的能量就越集中在低频子带。Haar小波基是最早、最简单的具有上述特性的函数,本文分别采用bior2.6和Haar小波基函数进行小波分解。
(3)采用量化编码对小波变换后的图像信号进行压缩处理。
(4)对以上3个步骤进行逆变换,重构原始图像。
3.2 算法的实现
使用Matlab软件编写程序实现算法。
(1)图像去噪程序
load zhxh %装入要处理的小孩头像图片
x=zhxh;
subplot(121);colormap(map);image(x);title(′原始图像′);axis square;
[thr,sorh,keepapp]=ddencmp(′den′,′wv′,x);
thr=thselect(x,′rigrsure′); %采用去噪参数’rigrsure’,
还可以使用参数’heursure’,’sqtwolog’,’minimaxi’
[xc,perf0,perfl2]=wdencmp(′gbl′,x,′bior2.6′,3,thr,sorh,keepapp);
subplot(122);colormap(map);image(xc);title(′去噪后图像′);axis square;
表1为使用不同的去噪参数,对图像能量的处理结果。
通过表1可见,对于本仿真实验使用的小孩头像图片来说,当使用参数rigrsure时,小波分解后置0的个数多,有效地减少了后续处理的图像信息量,去噪后信息剩余能量也较大,说明较好地保留了图像的信息,此效果最好。因此,本文算法使用此参数。
(2)图像小波变换及压缩处理(分别使用bior2.6和haar小波仿真)
下面程序是使用bior2.6小波处理图像,使用haar小波处理则将小波改变成haar即可。
[thr,sorh,keepapp]=ddencmp(′cmp′,′wv′,xc);
thr=10;sorh=′h′;keepapp=0;
[xc1,c,s,perf0,perfl2]=wdencmp(′gbl′,xc,′bior2.6′,3,thr,sorh,keepapp);
ca1=appcoef2(c,s,′bior2.6′,1);
ca2=appcoef2(c,s,′bior2.6′,2);
ca3=appcoef2(c,s,′bior2.6′,3);
ys1=wcodemat(ca1,220);
ys2=wcodemat(ca2,220);
ys3=wcodemat(ca3,220);
whos x ys1 ys2 ys3
图2和图3所示是去噪后使用不同小波压缩图像后重构图像的效果。
表2所示为两种小波处理图像时得到的效果比较。
算法仿真结果表明,选用不同的小波基函数,图像的压缩率不同,Haar比bior2.6小波得到的压缩比高,小波分解级越高越明显。在相同的压缩级上,bior2.6的重构图像质量在细节方面质量高,但在低频轮廓部分效果稍差;而在相同的压缩比上看,Haar小波的重构图像整体质量还是比较好的。本算法的另一个特点就是图像经过去噪处理后,在小波变换时,置0的高频系数数量增加了,有利于后续的压缩处理,但并没有使重构图像效果降低很多。
可以根据重构图像质量的要求对现有的算法改进,选择合适的小波基函数,使图像压缩效果尽如人意。本文算法提供了研究图像压缩方法的一种思路,也具有一定的价值。
参考文献
[1] 姚天任.现代数字信号处理[M].武汉:华中科技大学出版社,1996.
[2] 何小海.图像通信[M].西安:西安电子科技大学出版社,2005.
[3] 张德丰.数字图像处理(MATLAB版)[M].北京:人民邮电出版社,2009.
[4] 陈桂明.应用MATLAB语言处理数字信号与数字图像[M].北京:科学出版社,2001.
[5] 蔡旭晖.MATLAB基础与应用教程[M].北京:人民邮电出版社,2009.
[6] 清源计算机工作室.MATLAB高级应用[M].北京:机械工业出版社,2000.
[7] 郭锦.一种基于小波变换的图像压缩技术研究与实现[J].科学技术与工程,2006:2290-2293.