基于MATLAB的图像压缩技术研究

  • 格式:pdf
  • 大小:628.11 KB
  • 文档页数:4

第12期󰀁山西焦煤科技󰀁No.12󰀁2008年12月󰀁ShanxiCokingCoalScience&Technology󰀁󰀁Dec.2008󰀁

󰀁试验研究󰀁

基于MATLAB的图像压缩技术研究

吕金花󰀁

(山西汾西煤化高级技工学校)

󰀁󰀁摘󰀁要󰀁介绍了MATLAB在图像压缩研究方面的应用,探讨基于BP人工神经网络的图像压缩

的MATLAB实现和基于小波的图像压缩技术。MATLAB软件使用MATLABR2007a版本,并且通过

计算机实验证明了经过小波变换和BP神经网络编解码的图像在实现高压缩率的情况下能够保证很

好的图像质量,具有较好的视觉效果。

关键词󰀁MATLABR2007a;图像压缩;小波变换;BP神经网络

中图分类号:TD679󰀁文献标识码:A󰀁文章编号:1672-0652(2008)12-0035-04

󰀁󰀁图像信息数字化使电子信息技术领域面临的最

大难题是海量数据的存储和传输问题,而图像数据压

缩技术是解决问题的关键。由于图像数据往往存在

各种信息的冗余,如空间冗余、信息熵冗余、视觉冗余

和结构冗余等,因此也可以说,图像压缩就是去掉图

像中的各种冗余,保留有用的信息的过程[1]。

MATLAB是由美国MathWorks公司推出的用于

数值计算和图形处理的科学计算软件,它集数值分

析、矩阵计算、信号处理和图形显示多种功能于一体。

2007年3月,MathWorks公司推出了MATLAB

R2007a版本的最新产品,此版本增加了很多新的功

能,基本上囊括了目前很多典型应用的数字图形处

理。在MATLAB的神经网络工具箱中提供了很多用

于图像处理的函数。MATLABR2007a中的小波工具

箱(WaveletToolbox3.0)中包含的各种小波分析函

数,可用于对信号与图像的压缩处理,压缩后能保持

信号与图像的特征基本不变,压缩比高,压缩速度快,

且在传递过程中具有抗干扰能力。本文讨论了应用

MATLAB中的BP神经网络工具箱函数和小波工具

箱(WaveletToolbox3.0)函数进行图像压缩的原理,

并对其实现方法给出实例及相应分析。

1󰀁基于BP人工神经网络的图像压缩原理

BP网络是目前最为常用的一种人工神经网络模型,它可以直接提供数据压缩能力。利用多层前馈网

络的模式变换能力实现数据变换(编码)的基本思想

是:把一组输入模式通过少量的隐含层单元映射到一

组输出模式,并使输出模式尽可能等于输入模式。当

隐含层的单元数比输入模式数少时,就意味着隐含层

能更有效地表现输入模式,并把这种表现传送到输出

层,输出层节点数与输入层节点数相同。学习时,图

像数据既送到输入层,又送到输出层作为教师信号,

所使用的学习算法为算法网络训练好以后,输入层到

隐含层为网络的编码过程,对图像数据进行线性或者

非线性变换,从隐含层到输出层为网络的解码过程,

对经过压缩后的变换系数进行线性或者非线性反变

换,恢复图像的原始数据。

考虑用于学习的图像有N󰀁N个像素点,各像素

灰度值被量化为mBit(共2m个可能的取值)。2m

个灰度按线性关系转化成0~1之间的数值作为网络

的输入和期望输出(教师模式)。网络随机地抽取各

n󰀁n图像块(经过[0,1]区间的变换)作为学习模

式,用BP算法学习。通过调整网络中神经元之间的

连接权值,使训练集图像的重建误差E=f-g的均值

达到最小。训练好的网络隐含层神经元矢量(经过

量化)便是数据压缩的结果,而输出神经元矢量便是重建的数据。󰀁作者简介:吕金花󰀁女󰀁1959年出生󰀁1998年毕业于山西矿业学院󰀁工程师󰀁介休󰀁0320002󰀁基于BP人工神经网络图像压缩的实现

用基本的BP网络来进行图像压缩分为两个阶

段:训练和编码。第一阶段,将图像数据样本集作为

输入和教师信号训练BP网络;第二阶段:进行熵编

码。用BP人工神经网络对图像进行压缩的步骤如

下:

1)训练样本构造。把一幅图像的所有像素点作

为压缩网络的输入,应适当控制网络的规模,因此,首

先将图像进行划分。设待压缩图像由N󰀁N个像素

点构成,将其划分成M个子图像块,每个子图像块都

分别由p󰀁p的子像素块构成。这里以128󰀁128的

图像像素矩阵划分成4󰀁4子像素块矩阵为例来说明

训练样本的生成情况。

[1]4󰀁4[2]4󰀁4󰀁󰀁[32]4󰀁4[33]4󰀁4[34]4󰀁4󰀁󰀁[64]4󰀁4󰀁󰀁󰀁0󰀁󰀁

󰀁󰀁󰀁󰀁0󰀁󰀁

[993]4󰀁4[994]4󰀁4󰀁󰀁[1024]4

󰀁4

󰀁=[[1]4󰀁4,[2]4󰀁4,󰀁,[1024]4󰀁4]4󰀁1024]

󰀁󰀁由上面的方法生成的像素块矩阵还必须进行归

一化处理,本文采用的是均值分布预处理;待处理图

像的灰度范围为[xmin,xmax],变换域为[ymin,ymax],令

当前待处理的像素灰度值为:xvalue,则映射yvalue为:

yvalue=(ymax)(xvalue-xmin)xmax-xmin+xmin

用上式将原始图像的像素值划到[0,1]的范围

内,这样就构成了训练样本的所有预处理过程。

2)创建神经网络。将图像数据样本集作为输入

和教师信号训练BP网络,BP网络图像压缩中比特

率定义为:比特率=lkT+nktnL(bit/pixel)

这里输入图像被分成l个n维矢量,T和t分别

代表编码一个hi需要的比特数和编码一个耦合权值

(即w󰀁ij与b󰀁)需要的比特数,k是隐含层神经元的个

数。

图像数据的压缩比=输入层节点/隐含层节点。

神经网络训练好以后,网络的耦合权值在这个压

缩过程中保持不变。在MATLAB中newff函数用于

创建反向传播网络。

3)对神经网络进行训练。用构建的输入矩阵,

每一列代表一个输入模式,用输入矩阵作为目标输出

矩阵,开始训练网络。训练过程中可以采用不同的学

习算法。在MATLAB中用train函数实现对神经网络

的训练。

4)编码仿真。用给定的算法训练网络,然后仿

真。如果隐含层神经元为K,则网络的隐含层产生K󰀁1024的矩阵,隐含层和输出层之间产生16󰀁K的

权值矩阵,输出层产生16󰀁1的阈值矢量,分别对仿

真结果进行熵编码。MATLAB中用sim函数实现对

神经网络的仿真。

5)图像重构。对熵编码后的比特流进行解码,

得到隐含层输出hj和权值(w󰀁ij与b󰀁),代入公式计算

出网络输出yi,它是一个16󰀁1024的矩阵,每个矩阵

元素分别乘以255,把各像素值从[0,1]恢复为[0,

255],再把每个列向量变形成图像块,把所有子图像

组合成一幅完整图像,从而完成图像的重建工作[1]。

下面用实验来证明BP神经网络进行图像压缩

的结果。神经网络的输入节点为16,隐含层S分别

为8、4、2,分别代表压缩比为2、4、8。由于篇幅所限程序和运行过程省略。运行的结果见图1。

图1󰀁原始图像和压缩后的重构图像󰀁36󰀁山西焦煤科技2008年第12期󰀁󰀁从重建图像的效果可以看出,当隐含层神经元数

较少(S=2)时,压缩比较高,但是重建图像质量较

差,所以在仿真实验过程中,可通过增加隐含层的神

经元数来提高重建图像的质量。

3󰀁基于小波的图像压缩

小波分解方法是一种窗口大小(即窗口面积)固

定,但其形状可改变,时间窗和频率窗都可改变的时

频局域化分析方法,即在低频部分具有较高的频率分

辨率和较低的时间分辨率,在高频部分具有较高的时

间分辨率和较低的频率分辨率,所以被称为󰀁数学显

微镜󰀁。正是这种特性,使小波变换具有对信号的自

适应性[2]。

小波变换用于图像压缩的基本思想是:把图像进

行多分辨率分解,分解成不同空间、不同频率的子图

像,然后再对子图像系数进行编码。系数编码是小波

变换用于图像压缩的核心,压缩的实质是对系数的量

化压缩。图像经过小波变换后生成的小波图像的数

据总量与原图像的数据总量相等,即小波变换本身并不具有压缩功能。之所以将它用于图像压缩,是因为

生成的小波图像具有与原图像不同的特性,表现在图

像的能量主要集中在低频部分,而水平、垂直和对角

线部分的能量则较少;水平、垂直和对角线部分表征

了原图像在水平、垂直和对角线部分的边缘信息,具

有明显的方向特性。低频部分可以称为亮度图像,水

平、垂直和对角线部分可以称为细节图像。

小波变换通过多分辨分析过程将一幅图像分成

近似和细节两部分,细节对应的是小尺度的瞬变,它

在本尺度内很稳定。因此,将细节存储起来,对近似

部分在下一个尺度上进行分解,重复该过程即可。

应用MATLAB小波工具箱进行图像压缩,有2

种方法。

1)用wavedec2函数对图像进行小波分解后,再

用appcodf2函数对分解后图像进行重构,最后用

wcodemat函数进行量化编码,得到结果图像(程序和

运行过程省略)。运行的结果见图2。

图2󰀁基于小波的图像压缩结果

󰀁󰀁在这里可以看出,第一次压缩提取原始图像中

小波分解第一层的低频信息,此时压缩效果较好,压

缩比较小(约为1/4大小)。第二次压缩是提取第一

层分解低频部分的低频部分(即第二层的低频部

分),其压缩比较大(约为1/12),压缩效果在视觉上

也基本可以。随着分解层数的增加,压缩比是递减

的。

上面保留原始图像中低频信息的压缩办法只是

一种最简单的压缩办法,它不需经过其他处理即可获

得较好的压缩效果。对于上面的例子还可以只提取

小波分解的第三、第四层的低频信息。从理论上说,

可获得任意压缩比的压缩图像。在对压缩比和图像质量都有较高要求时,不如其他编码方法。

2)利用小波工具箱中专用的阈值压缩图像函数

wdencmp对给定图像进行压缩处理。首先给出应用

函数wdencmp进行压缩的效率,即分解系数中置0

的系数个数百分比和保留能量百分比(程序和运行

过程省略)。运行的结果见图3。

4󰀁结束语

MATLAB软件一经推出就获得了广大用户的青

睐,随着版本的不断提高,功能也越来越强大,尤其是

2007年3月推出的MATLABR2007a增加了350个

新特性,使用方便,简单易学。把用户从繁重的计算

和编程中解脱出来。所以,使用好MATLAB软件可󰀁37󰀁2008年第12期吕金花:基于MATLAB的图像压缩技术研究