基于MATLAB的图像压缩技术研究
吕金花
(山西汾西煤化高级技工学校)
摘 要 介绍了MATLAB在图像压缩研究方面的应用,探讨基于BP人工神经网络的图像压缩的MATLAB实现和基于小波的图像压缩技术。MATLAB软件使用MATLAB R2007a版本,并且通过计算机实验证明了经过小波变换和BP神经网络编解码的图像在实现高压缩率的情况下能够保证很好的图像质量,具有较好的视觉效果。
关键词 MATLAB R2007a;图像压缩;小波变换;BP神经网络
中图分类号:TD679 文献标识码:A 文章编号:1672-0652(2008)12-0035-04
图像信息数字化使电子信息技术领域面临的最大难题是海量数据的存储和传输问题,而图像数据压缩技术是解决问题的关键。由于图像数据往往存在各种信息的冗余,如空间冗余、信息熵冗余、视觉冗余和结构冗余等,因此也可以说,图像压缩就是去掉图像中的各种冗余,保留有用的信息的过程[1]。
MATLAB是由美国M a t h W or ks公司推出的用于数值计算和图形处理的科学计算软件,它集数值分析、矩阵计算、信号处理和图形显示多种功能于一体。2007年3月,M ath W orks公司推出了MATLAB R2007a版本的最新产品,此版本增加了很多新的功能,基本上囊括了目前很多典型应用的数字图形处理。在MATLAB的神经网络工具箱中提供了很多用于图像处理的函数。MATLAB R2007a中的小波工具箱(W avelet Too l b ox3.0)中包含的各种小波分析函数,可用于对信号与图像的压缩处理,压缩后能保持信号与图像的特征基本不变,压缩比高,压缩速度快,且在传递过程中具有抗干扰能力。本文讨论了应用MATLAB中的BP神经网络工具箱函数和小波工具箱(W avelet Too l b ox3.0)函数进行图像压缩的原理,并对其实现方法给出实例及相应分析。
1 基于BP人工神经网络的图像压缩原理
BP网络是目前最为常用的一种人工神经网络模型,它可以直接提供数据压缩能力。利用多层前馈网络的模式变换能力实现数据变换(编码)的基本思想是:把一组输入模式通过少量的隐含层单元映射到一组输出模式,并使输出模式尽可能等于输入模式。当隐含层的单元数比输入模式数少时,就意味着隐含层能更有效地表现输入模式,并把这种表现传送到输出层,输出层节点数与输入层节点数相同。学习时,图像数据既送到输入层,又送到输出层作为教师信号,所使用的学习算法为算法网络训练好以后,输入层到隐含层为网络的编码过程,对图像数据进行线性或者非线性变换,从隐含层到输出层为网络的解码过程,对经过压缩后的变换系数进行线性或者非线性反变换,恢复图像的原始数据。
考虑用于学习的图像有N N个像素点,各像素灰度值被量化为m B it(共2m个可能的取值)。2m 个灰度按线性关系转化成0~1之间的数值作为网络的输入和期望输出(教师模式)。网络随机地抽取各n n图像块(经过[0,1]区间的变换)作为学习模式,用BP算法学习。通过调整网络中神经元之间的连接权值,使训练集图像的重建误差E=f-g的均值达到最小。训练好的网络隐含层神经元矢量(经过量化)便是数据压缩的结果,而输出神经元矢量便是重建的数据。
作者简介:吕金花 女 1959年出生 1998年毕业于山西矿业学院 工程师 介休 032000
2 基于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
[]4 4 0
0 [993]4 4
[994]4 4
[1024]4
4
=[[1]4 4,[2]4 4, ,[1024]4 4]4 1024]
由上面的方法生成的像素块矩阵还必须进行归一化处理,本文采用的是均值分布预处理;待处理图像的灰度范围为[x m in ,x max ],变换域为[y m in ,y max ],令当前待处理的像素灰度值为:x valu e ,则映射y va lue 为:y valu e =(y ma x )(x va lue -x min )
x max -x m in
+x m in
用上式将原始图像的像素值划到[0,1]的范围内,这样就构成了训练样本的所有预处理过程。
2)创建神经网络。将图像数据样本集作为输入和教师信号训练BP 网络,BP 网络图像压缩中比特率定义为:
比特率=
lkT +nkt
nL
(bit/p i x el)这里输入图像被分成l 个n 维矢量,T 和t 分别代表编码一个h i 需要的比特数和编码一个耦合权值(即w
ij 与b
)需要的比特数,k 是隐含层神经元的个数。
图像数据的压缩比=输入层节点/隐含层节点。神经网络训练好以后,网络的耦合权值在这个压缩过程中保持不变。在MATL AB 中ne w ff 函数用于创建反向传播网络。
3)对神经网络进行训练。用构建的输入矩阵,每一列代表一个输入模式,用输入矩阵作为目标输出矩阵,开始训练网络。训练过程中可以采用不同的学习算法。在MATLAB 中用train 函数实现对神经网络的训练。
4)编码仿真。用给定的算法训练网络,然后仿真。如果隐含层神经元为K,则网络的隐含层产生K 1024的矩阵,隐含层和输出层之间产生16 K 的权值矩阵,输出层产生16 1的阈值矢量,分别对仿真结果进行熵编码。MATLAB 中用si m 函数实现对神经网络的仿真。
5)图像重构。对熵编码后的比特流进行解码,得到隐含层输出h j 和权值(w
ij 与b
),代入公式计算出网络输出y i ,它是一个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)用w avedec2函数对图像进行小波分解后,再用appcodf2函数对分解后图像进行重构,最后用w code m at 函数进行量化编码,得到结果图像(程序和运行过程省略)。运行的结果见图2
。
图2 基于小波的图像压缩结果
在这里可以看出,第一次压缩提取原始图像中小波分解第一层的低频信息,此时压缩效果较好,压缩比较小(约为1/4大小)。第二次压缩是提取第一层分解低频部分的低频部分(即第二层的低频部分),其压缩比较大(约为1/12),压缩效果在视觉上也基本可以。随着分解层数的增加,压缩比是递减的。
上面保留原始图像中低频信息的压缩办法只是一种最简单的压缩办法,它不需经过其他处理即可获得较好的压缩效果。对于上面的例子还可以只提取小波分解的第三、第四层的低频信息。从理论上说,可获得任意压缩比的压缩图像。在对压缩比和图像
质量都有较高要求时,不如其他编码方法。
2)利用小波工具箱中专用的阈值压缩图像函数w denc mp 对给定图像进行压缩处理。首先给出应用函数wdenc m p 进行压缩的效率,即分解系数中置0的系数个数百分比和保留能量百分比(程序和运行过程省略)。运行的结果见图3。4 结束语
MATLAB 软件一经推出就获得了广大用户的青睐,随着版本的不断提高,功能也越来越强大,尤其是2007年3月推出的MATLAB R2007a 增加了350个新特性,使用方便,简单易学。把用户从繁重的计算和编程中解脱出来。所以,使用好MATLAB 软件可
37 2008年第12期吕金花:基于MATLAB 的图像压缩技术研究
图3 图像压缩结果
以达到事半功倍的效果。本文正是在利用MATLAB 的基础上方便的应用BP 神经网络工具箱函数和小波工具箱函数轻松的实现了图像的压缩,并且经过实
验证明,压缩比高并且可以较好的保证图像的质量。
收稿日期 2008-09-20
参 考 文 献
[1] 王爱玲,叶明生,邓秋香.MATLAB R2007图像处理技术与应用[M ].北京:电子工业出版社,2008:35-39.[2] 李国勇.智能控制及其M ATLAB 实现[M ].北京:电子工业出版社,2005:-93.
Researc h on MATLAB for t he I m age Co mpression Tec hnol ogy
Lv Jinhua
Abst ract I ntroduces the applicati o n o fMATLAB i n i m age co m pression .Em phasizes on i m age co m pressi o n bo th on the w avelet and BP neura lnet w or k too lboxes ofMATL AB R2007a ,and t h e co m puter experi m ent proves t h at better i m age quality and better si g ht effect can be confir m ed i n the conditi o n of high co m pressed rate when usi n g this m eth -od .
K ey w ords MATLAB R2007a ;I m age co m pression;W avelet transfor m ;BP neural net w o r k (上接第30页)
Research on Centralizati on of Control Transfor mation of Assistant Control
Equi p m ent in Ther m al Power Plants
R ong Zhanyu
Abst ract Focuses on the assistan t contro l syste m of heat po w er p lants t h at change the l o cal con tro l to the con -centrati n g contro,l analyses the feasibility and necessity o f this a lterati o n ,and introduces the hardw are dep l o ys that t h e assistant syste m is usi n g for refor m ing to concentrati n g m on itor o fX i n gneng po w er co m pany ,and i n tr oduces the ex -perience and understand i n g in practice .
K ey w ords Assistan t contro l equ ip m en;t C oncentrating m on itor ;R esearch
38 山西焦煤科技2008年第12期下载本文