基于小波变换的彩色图像压缩编码算法的MATLAB实现

更新时间:2024-04-23 01:44:01 阅读量: 综合文库 文档下载

说明:文章内容仅供预览,部分内容可能不全。下载后的文档,内容与下面显示的完全一致。下载之前请确认下面内容是否您想要的,是否完整无缺。

(2009届)

本科毕业设计(论文)资料

基于小波变换的彩色图像压缩编码 题 目 名 称: 算法的MATLAB实现 学 院(部): 计算机与通信工程学院 专 业: 通信工程 学 生 姓 名: 李娜 班 级: 通信052班 学号0540820211 指导教师姓名: 刘立 职称 副教授 最终评定成绩:

湖南工业大学教务处

2009届

本科毕业设计(论文)资料

第一部分 毕业论文

(2009届)

本科毕业设计(论文)

基于小波变换的彩色图像压缩编码算法

的MATLAB实现

学 院(部): 计算机与通信工程学院 专 业: 通信工程 学 生 姓 名: 李娜 班 级: 通信052班 学号 0540820211 指导教师姓名: 刘立 职称 副教授 最终评定成绩

2009年6月

湖南工业大学本科毕业设计(论文)

摘 要

随着信息技术的发展,图像以其信息量丰富的特点,成为通信和计算机系统中信息传输的重要载体,而图像信息占据了大量的存储容量,因而图像压缩编码是图像存贮的一个重要课题。

图像压缩是用最少的数据量来表示尽可能多的原图像信息的一个过程。小波变换是当前数学中一个迅速发展的新领域,在MATLAB中,图像压缩是其应用领域中的一个方面。

论文首先介绍了图像压缩编码的研究背景和论文的研究内容及结构安排,然后详细地从理论上介绍了图像压缩,并讲解了小波变换的由来、定义和特点,以及在分析中所涉及到的连续小波变换、离散小波变换、二维小波变换,同时说明了当前小波变换在图像方面的各个应用领域和研究的意义。接着介绍了其研究工具MATLAB的组成和特点。通过小波变换的理论研究,应用MATLAB来实现了一般彩色图像的压缩,最后利用小波分析的工具箱来实现相关小波变换的应用。

论文对程序中用到的主要函数给予了说明, 较直观的探讨了小波变换在图像压缩中的应用。由于小波变换在图像中有许多的优点,因此小波变换在各个应用领域也越来越广。

关键词:图像压缩,小波变换, MATLAB,彩色图像

I

湖南工业大学本科毕业设计(论文)

ABSTRACT

With the development of information technology, image,rich features of its information, has become in an important carrier of information transmission in the communications and computer systems. And as the image information occupy a large amount of storage capacity, the image compression is an important issue of the image storage.

Image compression is a process using the amount of data at least as much as possible to show that the original image information. Wavelet Transform is a new field rapidly developing in present mathematics. In MATLAB, the image compression is a respect of its application.

The research background of image coding and the research content and structure of this paper are introduced firstly. Then in terms of theory, we elaborate upon the image compression, the origin of the wavelet transform, the definition and the characteristics, and explain the wavelet continuous transform, the discrete wavelet transform, the two dimensional wavelet, which are involved in analyzing. At the same time, the application fields of Wavelet Transform in the aspect of image are described in detail, and the meaning of its research has got cleared. This text has introduced its research tool MATLAB and relevant composition and characteristics. Through the theoretical research of the Wavelet Transform, this paper use MATLAB to implement the compression, and this can implement something about the Wavelet Transform of application and realize the anticipated purpose basically.

And more intuitively explore the application of wavelet transform in image compression by giving a description of the procedures for the main function that were used. Because there are a lot of advantages in wavelet image, Wavelet Transform will be applied much wider in each field.

Keywords: Wavelet Transform , Image Compression, MATLAB, Color Image

II

湖南工业大学本科毕业设计(论文)

目 录

第1章 前言 ..................................................................................................... 1

1.1 研究背景 ........................................................ 1 1.2 研究内容 ........................................................ 2 1.3 文章结构安排 .................................................... 2

第2章 系统理论基础 ..................................................................................... 3

2.1 图像压缩 ........................................................ 3 2.2 小波变换 ........................................................ 3

2.2.1 小波变换的由来 ............................................ 4 2.2.2 小波变换的基本思想 ........................................ 5 2.2.3 小波变换的特点 ............................................ 6 2.2.4 常用的小波变换 ............................................ 7 2.2.5小波变换在图像压缩中的应用 ............................... 10 2.2.6小波变换在图像处理中的其他应用 ........................... 11 2.3 离散余弦变换 ................................................... 12

2.3.1离散余弦变换的定义 ....................................... 12 2.3.2离散余弦变换应用于图像压缩 ............................... 13 2.4 其他重要理论 ................................................... 14

第3章 系统设计 ........................................................................................... 15

3.1 设计思想 ...................................................... 15 3.2 MATLAB简介 ................................................... 15

3.2.1 MATLAB小波工具箱 ........................................ 15 3.2.2 MATLAB用户图形界面 ...................................... 17 3.3 系统功能模块 .................................................. 18

第4章 系统实现 ........................................................................................... 20

III

湖南工业大学本科毕业设计(论文)

4.1 系统的使用方法 ................................................ 20 4.2 重要代码的实现 ................................................ 20

4.2.1打开图像 ................................................. 20 4.2.2变换为灰度图像 ........................................... 22 4.2.3小波压缩——低频信息保留压缩方法 ......................... 23 4.2.4二维小波压缩 ............................................. 25 4.2.5小波包压缩变换 ........................................... 30 4.2.6 DCT压缩 ................................................. 32 4.2.7小波消噪 ................................................. 34

第5章 总结体会 ........................................................................................... 37

5.1 小波图像压缩总结 ............................................... 37 5.2 小波图像分析展望 ............................................... 38

参考文献 ........................................................................................................... 39 致 谢 ............................................................................................................... 40

IV

湖南工业大学本科毕业设计(论文)过程管理资料

第1章 前言

1.1 研究背景

图像压缩是计算机应用领域中一个重要的问题。由于图像数据往往存在各种信息的冗余,如空间冗余、信息熵冗余、视觉冗余和结构冗余等[2],因此也可以说,图像压缩就是去掉图像中的各种冗余,保留对我们有用的信息的过程[16]。

随着信息技术的发展,图像以其信息量丰富的特点,成为通信和计算机系统中信息传输的重要载体,与文字信息不同的是,图像信息占据大量的存储容量,所用传输信道也比较宽。因而图像压缩编码是图像存贮和传输方面的一个重要课题。高效的编码方法能大大减小图像存贮的空间。

据一些学者试验和估算,人类对信息的获取有近85%来自视觉系统,可见图像是多媒体信息中的重中之重。然而,图像的最大特点也是最大难点就是海量数据的表示与传输。我们先来看一个例子,一幅512*512像素,每分量8b/像素的彩色静止图像则占3*256=768KB的磁盘空间。提过以每秒24帧(一帧即一幅图像)传送此图像,则一秒钟的数据量就有24*768KB=18.5MB,那么一张680MB容量的CD-ROM仅能存储30多秒的原始数据,即使以现在的技术,仍然难以满足原始数字图像存储和传输的需要。因此对图像数据的压缩就成了技术进步的迫切需求。

近年来小波变换的数学理论和方法越来越引起人们的重视。小波变换是对人们熟悉的傅里叶变换与短时傅里叶变换的一个重大突破,小波分析具有优异的时_频局部特性,能够对图像这类局部平稳信号进行有效的分析。同时,它具有良好的能量集中特性,使我们能够在变换域内进行编码,得到较高的压缩效率。利用小波变换对图像进行分解,分解后的图像具有多分辨率分解特性和倍频程频带分解特性,符合人眼在图像理解中的多尺度特性,又便于结合人眼的视觉特性。

小波分析在图像处理中已经得到广泛的应用,一般来说,主要体现在以下几个方面:图像的分解和重构、图像压缩、图像消噪、图像增强、图像平滑、图像融合等[11]。 而这一方面的著作和学术论文也特别多。 二进小波变换用于图像拼接和镶嵌中,可以消除拼接缝。利用正交变换和小波包进行图像数据压缩,可以克服由于数据压缩而产生的方块效应,获得较好的压缩效果。同时,利用小波变换方法可进行边缘检测、图像匹配、图像目标识别及图像细化等。

而近年来,人们对小波变换技术应用于图像压缩产生了浓厚的兴趣。因为小波变换具有频率分析和尺度分析的双重特性,每级分解后能量集中于低频子带等优点,运用小波变换进行图像压缩编码成为一个研究热点。对灰度图像相应也出现了多种编码

1

湖南工业大学本科毕业设计(论文)过程管理资料

方法,如零树编码和矢量量化编码等,而对彩色图像的编码则研究相对较少。与传统纯频域分析的傅里叶方法不同,小波变换是一种时频分析方法,它在时频和域频同时具有良好的局部化性质。小波变换对于不同的频率成分在时域上的取样步长是调节性的,高频者小、低频者大,因此在实际应用中完全可以根据需要将图像或信号分解到一些合适的尺度成分上,然后再根据不同的要求作适当的编码。因此,小波变换是一种能够获得较好图像复原质量与压缩比的、能够适应未来发展的变换技术,已经成为当今图像压缩编码的主要研究方向[6][9]。

1.2 研究内容

对于尺寸较大、质量较高的真彩色图像,图像压缩具有特殊重要的意义,它能够节省占用的存储资源空间。同时由于图像数据本身固有的冗余性和相关性,使得讲一个大的图像数据文件转换成较小的图像数据文件成为可能。因此,论文将主要研究彩色静止图像的压缩编码。

论文主要以真彩色RGB图像的处理为例,对由它转换来的彩色索引图像矩阵和灰度索引图像矩阵进行小波分解后,将低频近似的系数矩阵作相应的截取处理,以及优化索引图像的颜色图,同时通过和其他压缩算法实现的对比和小波变换的其他应用,来研究基于小波变换的彩色图像压缩编码算法的MATLAB实现。

1.3 文章结构安排

论文采用并列式结构来安排文章的结构。第一章是前言(也可称为绪论),对我所做的研究的背景和内容做了一个简单的介绍;第二章是系统的理论基础,顾名思义,就是对我所做研究的理论做一次系统的介绍,包括图像压缩、小波变换、离散余弦变换;第三章是系统的设计,阐述了我设计该系统时的设计理念,系统的模块和用到的设计工具MATLAB,以及用MATLAB如何设计我想要的界面;第四章是系统的实现,介绍了我的系统如何进行操作,我的重要代码实现了什么功能;第五章是总结和体会,讲述了我在做这次研究中遇到的困难,以及在不断的克服困难中我所收获的心得和体会。

2

湖南工业大学本科毕业设计(论文)过程管理资料

第2章 系统理论基础

2.1 图像压缩

随着信息技术的发展,图像以其信息量丰富的特点,成为信息的重要载体,但同时图像的数据量很大,因而图像压缩编码是图像存贮和传输方面的一个重要课题。高效的编码方法能大大减小图像存贮的空间。对于尺寸较大、质量较高的真彩色图像,图像压缩具有特殊重要的意义,它能够节省占用的存储资源空间。因此,论文将主要研究彩色静止图像的压缩编码。

数字图像的压缩编码[2],是指在一定质量条件下,用较少的比特数来表示(或传输)一幅图像的过程。图像数据文件通常包含着大量冗余信息,另外还有相当数量的不相干信息,这为数据压缩技术提供了可能。数据压缩技术利用数据固有的冗余性和不相干性,讲一个大的数据文件转换成较小的文件,图像数据压缩就是要去掉信号数据的冗余性。

一般来说,图像数据中存在以下几种冗余:空间冗余,时间冗余,结构冗余,信息熵冗余,知识冗余,视觉冗余,另外,还有由图像的专有特性带来的冗余等。既然图像数据中存在信息冗余,就有可能对图像数据量进行压缩,针对数据冗余的类别不同,可以有多种不同的数据压缩方法。

根据解码后图像与原始图像的比较,图像压缩的方法可以分成两大类:可逆编码和不可逆编码。可逆编码一般基于信息熵原理,因此优势也称为熵编码、信息保持编码或无损压缩等。实际上这是一种统计意义上的压缩编码方法,具体的说就是解码图像和压缩编码前的图像严格相同,没有失真。不可逆编码,就是说解码图像和原始图像有差别,允许有一定的失真;因此也称为有时真压缩编码、熵压缩编码、有损压缩编码等。

常见的无损压缩方式有哈夫曼编码,香农—范诺编码,算术编码,行程编码,无损预测编码,LZW编码等;常用的有损压缩编码有变换编码,有损预测编码,分型编码等,其中,变换编码又包含为Haar变换,离散余弦变换,离散傅里叶变换,小波变换,斜变换等。论文将研究的是基于小波变换的图像压缩编码。

2.2 小波变换

小波是定义在有限间隔而且其平均值为零的一种函数[11],它的波形如图2.1所示,它们是从许多使用比较广泛的小波中挑选出的几种一维小波。在波图示的小波中,缩

3

湖南工业大学本科毕业设计(论文)过程管理资料

放函数和小波函数的名称大多数是以开发者的名字命名的,例如 Moret 小波函数是Grossmann和Morlet 在 1984年开发的,db6缩放函数和 db6小波函数是Daubechies开发的几种小波之一。

Haar小波函数 Moret小波函数 db6小波函数

Mayer小波函数 sym6小波函数 coif2小波函数

图2.1 部分小波

2.2.1 小波变换的由来

小波是近十几年才发展起来并迅速应用到图像处理和语音分析等众多领域的的一种数学工具,是继110多年前的傅立叶(Joseph Fourier)分析之后的一个重大突破,它无论是对古老的自然学科还是新兴的高新技术应用学科都产生了强烈冲击,是国际科技界众多学术团体高度关注的前沿领域。

由于傅里叶变换对瞬态或非平稳信号的局域特性无能为力,所以人们开始研究短时傅里叶变换,小波变换和一般的时频分布方法,用于分析信号的局域时频特性。小波变换(Wavelet Transformation, WT)是针对稳态傅里叶变换(Fourier Transformation, FT)在分析非信号方面的局限性形成和发展起来的一种十分有效的时频分析工具。

1909年哈尔(Alfred Haar)发现了小波,并被命名为哈尔小波(Haar wavelets)。20世纪70年代,当时在法国石油公司工作的年轻的地球物理学家Jean Morlet提出了小波变换 WT(wavelet transform)的概念。法国的科学家 Meyer于1986年创造性地构造出具有一定衰减性的光滑函数,他用缩放(dilations)与平移(translations)均为2j((j≥0)的整数)的倍数构造了L2(R)空间的规范正交基,使小波得到真正的发展。在信号处理中,自从 SMallat和Inrid Daubechies发现滤波器组与小波基函数有

4

湖南工业大学本科毕业设计(论文)过程管理资料

密切关系之后,小波在信号(如声音信号,图像信号等)处理中得到极其广泛的应用。该文试图从实验的角度出发,利用 MATLAB数学分析工具较为直观地探讨了小波变换在图像压缩中的应用。

2.2.2 小波变换的基本思想

小波变换的基本思想[11]是用一组小波或基函数表示一个函数或信号,例如图像信号。以哈尔(Haar)小波基函数为例,基本哈尔小波函数(Haar wavelet function)定义如式(2.1):

?1,当0?x?12??(x)? ??1,当12?x?1 (2.1)

?0,其他?设有一幅分辨率只有4个像素的一维图像,对应像素值为:[9 7 3 5]。用哈尔小波变换的过程是:计算相邻像素对的平均值(averaging,亦可称之为近似值approximation),得到一幅分辨率为原图像1/2的新图像:[8 4]。这时图像信息已部分丢失,为了能从2个像素组成的图像重构出4个像素的原图像,必须把每个像素对的第一个像素值减这个像素的平均值作为图像的细节系数(detail coefficient)保存。因此,原图像可用下面的两个平均值和两个细节系数表示:[8 4 1 -1]。可以把第一步变换得到的图像进一步变换,原图像两级变换的过程如表2.1所示:

表2.1 哈尔小波变换表 分辨率 4 2 1 平均值 [9 7 3 5] [8 4] [6] 细节系数 [1 -1] [2]

哈尔变换过程事实上是用求均值和差值的方法对函数或图像进行分解,对于f(x)=[9 7 3 5],最多可作2层的分解。

对于2维图像,同样可以用依次对行列进行小波变换得到2维图像的分解。这时经过一次小波变换得到是2维图像的近似值(CA)以及水平(CH)、垂直(CV)和对角(CD)细节分量值。显然,从2维图像的 CA、CH、CV 和 CD值可以重构出原来的2维图像。

5

湖南工业大学本科毕业设计(论文)过程管理资料

图2.2 小波图像变换过程

小波变换(Wavelet Transformation, WT)是针对稳态傅里叶变换(Fourier Transformation, FT)在分析非信号方面的局限性形成和发展起来的一种十分有效的时频分析工具。

小波变换(Wavelet Transformation, WT)采用不同尺度的分析方法,能在信号的不同部位得到最佳的时域分辨率和频域分辨率,为非稳态信号的分析提供了一条新的途径。WT与FT相比,它是一个时间和频率的局域变换,因而能有效的从信号中提取信息,通过伸缩和平移等运算功能对信号进行多尺度细化分析(Multiscale Analysis),它克服了FT在频域完全局部化而在时域完全无局部性的缺点,对波动谐波、快速变化谐波的检测有很大优越性,目前是波动谐波、快速变化谐波的主要检测方法。

但是WT并不能完全取代傅里叶变换,这是因为一方面WT在稳态谐波检测方面并不具备理论优势,另一方面WT的理论和应用研究时间相对较短,WT应用在谐波测量方面尚处于初始阶段,还存在着许多不完善的地方,例如缺乏系统规范的最佳小波基的选取方法,缺乏构造频域行为良好,即分频严格、能量集中的小波函数以改善检测精度的规范方法。因此WT与FT存在互补的优势。

2.2.3 小波变换的特点

由图2.1可以看到,小波具有有限的持续时间和突变的频率和振幅,波形可以是

6

湖南工业大学本科毕业设计(论文)过程管理资料

不规则的,也可以是不对称的,在整个时间范围里的幅度平均值为零。

由于其良好的空间—频率局部化特征,小波变换在世纪的头像压缩应用中得到了广泛的应用。小波压缩的固有特征使它在图像处理中有以下优点[3][4]:

1) 多尺度分解提供了不同尺度下图像的信息,并且变换后的能量大部分集中在低频部分,便于对不同尺度下的小波系数分别设计量化编码方案,在提高图像压缩比的情况下保持好的视觉效果和较高的PSNR;

2) 小波变换的完善重构能力,保证了信号在分解过程中没有信息损失和冗余信息产生;

3) 小波变换把头像分解为逼近影响和细节影响之和,分别代表了影响不同尺度和不同结构的信息,便于提取原始图像中的结构信息和细节信息; 4) 小波变换具有快速算法;

5) 二维小波分析为图像分析提供了与人类视觉系统方向特性相吻合的方向选择性。

小波变换具有很大的灵活性,在理论上可以有无数个小波基可供选择,同时这也为小波变换的应用提出了一个难题,那就是如何正确选择小波基。在众多的小波中,选择什么样的小波对信号进行分析是一个至关重要的问题。使用的小波不同,分析得到数据也不同,这是关系到能否达到使用小波分析的目的问题。

2.2.4 常用的小波变换

(1)一维小波连续变换(CWT)

傅立叶分析是把一个信号分解成各种不同频率的正弦波,因此正弦波是傅立叶变换的基函数。同样,小波分析是把一个信号分解成由原始小波经过移位和缩放之后的一系列小波,因此小波同样可以用作表示一些函数的基函数[16]。可以说,凡是能够用傅立叶分析的函数都可以用小波分析,因此小波变换也可以理解为用经过缩放和平移的一系列函数代替傅立叶变换的正弦波。仔细观察图2.3所示的正弦波和小波可以发现,用不规则的小波来分析变化激烈的信号也许比用平滑的正弦波更有效,或者说对信号的基本特性描述得更好如图2.3所示。

(a)正弦波 (b)小波(db10)

图2.3 正弦波与小波

图2.3分别是傅立叶分析与小波分析使用的基函数,数学上傅立叶分析的过程实际上是用傅立叶变换(式2.2)表示,

7

湖南工业大学本科毕业设计(论文)过程管理资料

?? F(?)????f(t)e?j?tdt (2.2)

傅立叶变换是信号 f(t)与复数指数e-jwt(e-jwt=cosωt+jsinωt)之积在信号存在的整个期间里求和。傅立叶变换的结果是傅立叶系数 F(ω),它是频率ω的函数。

同样,连续小波变换(continuous wavelet transform ,CWT)用式(2.3)表示:

????C(scale,position)??f(t)?(scale,position,t)dt (2.3)

小波变换是信号f(t)与被缩放和平移的小波函数ψ之积在信号存在的整个期间里求

和。CWT变换的结果是许多小波系数C,这些系数是缩放因子(scale)和位置(position)的函数。

CWT的整个变换过程如图2.4所示。

小波变换完成之后得到的系数是在不同的缩放因子下由信号的不同部分产生的。这些小波系数、缩放因子和时间之间的关系和它们的含义可以用图2.5(a)表示,该图是用MATLAB软件绘制的。图2.5(a)是用二维图像表示的小波变换分析图,y轴表示沿信号的时间方向上的位置,轴表示缩放因子,每个x-y点的颜色表示小波系数的幅度大小。图2.5(b)是用三维图像表示的小波变换分析图,轴表示小波变换之后的系数。

图2.4 连续小波变换CWT的过程

8

湖南工业大学本科毕业设计(论文)过程管理资料

(a) 二维图

(b)二维图

图2.5小波系数、缩放因子和时间之间的关系

(2)二维小波变换

二维小波系数分解过程

【15】

可用图2.6所示的电路结构来实现。图2.6中,下标x表示

对矩阵沿行方向进行滤波,下标y表示对矩阵沿列方向进行滤波。由于h具有低通性质,g具有高通性质,图像数据可看成一个二维离散信号,经过一次分解后得到的4部分输出分别经过了不同的滤波器,代表了原始矩阵的不同信息。其中,Si,k经过行和列两个方向的低通,对应了原始离散图像在下一尺度上的概貌,?ij,k经过了行方向上的高通、列方向上的低通,对应于水平方向的细节信号在垂直方向的概貌,相应的,?i,jk表示是原始图像垂直方向的细节信号在水平方向的概貌,?ij,k表示的是沿对角线方向的细节。图像经过一次小波变换后,总的输出数据量没有减少,但是图像信息按照频率信息不同,将各分量进行了重排,便于量化处理和编码。这就是著名的Mallat快速算法,它把

9

j湖南工业大学本科毕业设计(论文)过程管理资料

小波分解与多采样滤波器组联系起来,并且符合人体视觉系统对各频段的视觉敏感特性。若将一次小波分解出的概貌部分继续进行小波分解,就可以得到原始图像在不同尺度上的细节和概貌,形成小波分解的金字塔结构,如图2.7所示。

图2.6 二维小波系数分解过程

hy(-k) hx(-k) 2 gy(-k) hy(-k) gx(-k) 2 gy(-k) 2 2 2 2 Si,jk ?i,jk ?ij,k ?ij,k

LL3 HL3 LH3 HH3 LH2 HL2 HH2 HL1 LH1 HH1

图2.7 小波分解的金字塔结构

2.2.5小波变换在图像压缩中的应用

小波变换是20世纪最辉煌科学成就之一,是一种全新的变换技术,其最早应用在地震数据压缩中,以后在图像处理、故障诊断等方面取得了传统方法根本无法达到的效果。现在小波分析已经渗透到了自然科学、应用科学等方面,成为国际研究热点。目前小波分析在计算机应用、信号处理、图象分析、非线性科学、地球科学和应用技

10

湖南工业大学本科毕业设计(论文)过程管理资料

术等均已有重大突破,预示着小波分析进一步热潮的到来。

在图像处理中,小波分析的应用是很成功的,而这一方面的著作和学术论文也特别多。二进小波变换用于图像拼接和镶嵌中,可以消除拼接缝; 利用正交变换和小波包进行图像数据压缩,可望克服由于数据压缩而产生的方块效应,获得较好的压缩效果;利用小波变换方法可进行边缘检测、图像匹配、图像目标识别及图像细化等。在图像压缩领域,小波变换得到了实际的应用,并取得了很好的效果。

小波变换用于图像压缩的基本思想【9】就是把图像进行多分辨率分解,分解成不同空间、不同频率的子图像,然后再对子图像进行系数编码。系数编码是小波变换用于压缩的核心,压缩的实质是对系数的量化压缩。

图像经过小波变换后生成的小波图像的数据总量与原图像的数据量相等,即小波变换本身并不具有压缩功能。之所以将它用于图像压缩,是因为生成的小波图像具有与原图像不同的特性,表现在图像的能量主要集中于低频部分,而水平、垂直和对角线部分的能量则较少;水平、垂直和对角线部分表征了原图像在水平、垂直和对角线部分的边缘信息,具有明显的方向特性。低频部分可以称为亮度图像,水平、垂直和对角线部分可以称为细节图像。人眼对亮度图像部分的信息特别敏感,对这一部分的压缩应尽可能减少失真或者无失真。

近年来小波变换的数学理论和方法越来越引起人们的重视。因为小波变换具有频率分析和尺度分析的双重特性,每级分解后能量集中于低频子带等优点,运用小波变换进行图像压缩编码成为一个研究热点。对灰度图像相应也出现了多种编码方法,如零树编码和矢量量化编码等,而对彩色图像的编码则研究相对较少。

而且,与传统纯频域分析的傅里叶方法不同,小波变换是一种时频分析方法,它在时频和域频同时具有良好的局部化性质。小波变换对于不同的频率成分在时域上的取样步长是调节性的,高频者小、低频者大,因此在实际应用中完全可以根据需要将图像或信号分解到一些合适的尺度成分上,然后再根据不同的要求作适当的编码。因此,小波变换是一种能够获得较好图像复原质量与压缩比的、能够适应未来发展的变换技术,已经成为当今图像压缩编码的主要研究方向。

2.2.6小波变换在图像处理中的其他应用

(1)小波消噪处理

由于图像是二维信号,在应用小波变换对图像进行消噪处理之采用二维小波变换。图像消噪的主要目的是在平滑噪声的同时尽可能地保留原始图像的重要特征。与传统技术相比,小波分析在此方面有很大的优越性。二维小波分析用于图像消噪主要有3个步骤:

11

湖南工业大学本科毕业设计(论文)过程管理资料

1)二维图像信号的小波分解

在这一步,应当选择合适的小波和恰当的分解层次(记为N),然后对待分析的二维图像信号X进行N层分解计算。 2)对分解后的高频系数进行阈值量化

对于分解的每一层选择一个恰当的阈值,并对该层高频系数进行软阈值量化处理。在此,阈值选择规则同前面的信号处理部分。 3)二维小波的重构图像信号

同样,根据小波分解后的第N层近似(低频系数)和经过阈值量化处理后的各层细节(高频系数),来计算二维信号的小波重构。

在这三步中,重点内容仍然是如何选取阈值和任何进行阈值量化这个步骤。

(2)小波融合处理

传统的小波变换融合方法是利用小波变换,将图像从空间域变换到频率域中,用高空间分辨率全色图像的细节分量替代低空间分辨率的光谱图像的细节分量,然后对光谱图像的小波系数进行小波反变换,得到融合图像。具体步骤如下:

1)对待融合的图像进行配准,配准的精度要求在一个像素内。

2)对高、低分辨率的图像进行n次小波变换(n通常取3~4),以得到各自相应分辨率的低频轮廓图像和高频细节图像。

3)用全色图像的高频部分来代替光谱图像的高频部分。 4)对替换后图像进行小波逆变换,得到融合结果图像。

在传统的小波变换融合方法中,由于直接舍弃了全色图像的低频分量,从而在一定程度上损失了全色图像的细节信息,且其程度与小波分解的层数有关。一般来说,层数越低,细节信息损失越多,但光谱信息保留越多,反之亦然。但是相对其他传统方法,小波变换法获得的融合图像效果更好。

2.3 离散余弦变换

2.3.1离散余弦变换的定义

离散余弦变换(DCT变换)[16]是利用傅立叶变换的性质,采用图像边界褶翻将图像变换为偶函数形式,然后对图像进行二维傅立叶变换,变换后仅包含余弦项,所以称之为离散余弦变换。

二维离散余弦变换DCT(Discrete Cosine Transform)的定义为,假设矩阵A的大小为M>N,

12

湖南工业大学本科毕业设计(论文)过程管理资料

M?1N?1 (0≤p≤M-1,0≤q≤N-1)

2M2Nm?0n?0 (2.4—1)

??1/N,q?0?1/M,p?0a?ap?? q?

2M,1?p?M?1?2/N,1?q?N?1?? (2.4—2)

cosBp,q?apaq??Amncos?(2m?1)p?(2n?1)q其中,式(2.4—1)中Bpq称为矩阵A的DCT系数。在MATLAB中,矩阵的下标从1开始而不是从0开始的,所以MATLAB中的矩阵元素A(1,1)和B(1,1)分别对应于上面定义中的值A00和B00,依此类推。

DCT是一种可逆变换,离散反余弦变换定义如下式(2.5):

M?1N?1?(2m?1)p?(2n?1)q Am,n???apaqBpqcos (0≤p≤M-1,0≤q≤N-1) cos2M2Np?0q?0 (2.5)

上式(2.5)的含义是任何M×N的矩阵A都可以表示为一系列具有下式(2.6)的函数的和:

?(2m?1)p?(2n?1)qapaqBpqcoscos (0≤p≤M-1,0≤q≤N-1)

2M2N (2.6) 这些函数称为DCT变换的基函数。这样,Bpq就可以看成是应用于每个基函数的加权。

2.3.2离散余弦变换应用于图像压缩

DCT编码属于正交变换编码方式,用于去除图像数据的空间冗余。变换编码就是将图像光强矩阵(时域信号)变换到系数空间(频域信号)上进行处理的方法。在空间上具有强相关的信号,反映在频域上是在某些特定的区域内能量常常被集中在一起,或者是系数矩阵的分布具有某些规律。我们可以利用这些规律在频域上减少量化比特数,达到压缩的目的。

图像经DCT变换以后,DCT系数之间的相关性已经很小,而且大部分能量集中在少数的系数上,因此,DCT变换在图像压缩中非常有用,是有损图像压缩国际标准JPEG的核心。从原理上讲可以对整幅图像进行DCT变换,但由于图像各部位上细节的丰富程度不同,这种整体处理的方式效果不好。为此,发送者首先将输入图像分解为8×8或16×16的块,然后再对每个图像块进行二维DCT变换,接着再对DCT系数进行量化、编码和传输;接收者通过对量化的DCT系数进行解码,并对每个图像块进行的二维DCT反变换,最后将操作完成后所有的块拼接起来构成一幅单一的图像。对于一般的图像而言,大多数DCT系数值都接近于0,可以去掉这些系数而不会对重

13

湖南工业大学本科毕业设计(论文)过程管理资料

建图像的质量产生重大影响。因此,利用DCT进行图像压缩确实可以节约大量的存储空间。

2.4 其他重要理论

MATLAB图像处理工具箱支持四种基本图像类型: 索引图像、灰度图像、二进制图像和RGB图像。MATLAB直接从图像文件中读取的彩色图像为RGB 图像。它存储在三维数组中。这个三维数组有三个面,依次对应于红(Red)、绿(Green)、蓝(Blue) 三种颜色,而面中的数据则分别是这三种颜色的强度值,面中的元素对应于图像中的像素点。

由于MATLAB小波工具箱只能处理索引图像,对于非索引的真彩色RGB 图像, 就要将其转换成索引图像。通常情况下,MATLAB 使用rgb2gray () 函数完成这一任务:

X= rgb2gray (Y) ;

而在本研究中我们利用了两种不同颜色空间的转换实现非索引的真彩色RGB 图像向灰度级索引图像的变换。

对于以表示的彩色图像,由于这三个分量之间高度相关,不利于进行图像压缩,因此我们把图像转换到YIQ颜色空间来表示。其中,Y代表亮度信号,I 和Q代表色度信号,它们之间是不相关的,故可以把图像分解成IY、II和IQ三个数据块分别进行处理。由RGB到YIQ颜色空间的转换可以通过下式(2.7)来实现:

0.114??R??Y??0.2990.587???0.596?0.274?0.322??G? (2.7) I ?????????Q????0.211?0.5220.311????B??

然后在这三个分量中分别施行4层小波变换, 得到图像的塔型分解(如图7所示)。 由于I、Q分量所包含的信息量小于Y分量,而且人眼对于I、Q表示的色度信号的敏感程度小于Y分量所代表的亮度信号,我们可以丢弃一些I、Q分量的小波变换域内高分辨率的细节子图,而不会对重建图像的质量产生重大的影响,但可以提高压缩效率。而对分量,我们保留全部的子图。

然后可根据情况采用不同的小波函数,进行索引图像的分解压缩。

14

湖南工业大学本科毕业设计(论文)过程管理资料

第3章 系统设计

3.1 设计思想

我希望利用MATLAB工具设计一个图形用户界面(GUI),利用小波变换可以实现图像的压缩处理,同时设计一个其他压缩编码(论文用到的是DCT压缩编码)和一个小波消噪处理,与小波变换压缩编码进行对比。

3.2 MATLAB简介

MATLAB[1][4]是由美国Math Works公司在1984年推出的用于数值计算和图形处理的科学计算软件,它集数值分析、矩阵计算、信号处理和图形显示多种功能于一体,构成了一个方便的界面友好的用户环境。历经十几年的发展,现已成为国际公认的最优秀的科技应用软件。

该软件有三大特点:一是功能强大。具有数值计算和符号计算、计算结果和编程可视化、数学和文字统一处理、离线和在线计算等功能;二是界面友善、语言自然。MATLAB以复数处理作为计算单元,指令表达与标准教科书的数学表达式相近;三是开放性强。Math Works公司本身就推出了30多个应用工具箱,而世界上超过200家公司开发出与MATLAB兼容的第三方产品,这些产品向用户提供更多的工具箱、模块集、与其他商业产品的接口等。

MATLAB的这些特点使它获得了对应用学科(特别是边缘学科和交叉学科)的极强适应力,并很快成为应用学科计算机辅助分析、设计、教学,乃至科技文字处理、科学图像处理不可缺少的基础软件。

3.2.1 MATLAB小波工具箱

MATLAB中的小波工具箱(Wavelet Toolbox)是许多基于MATLAB技术计算环境的函数包的集合。它应用MATLAB体系下的小波和小波包,提供了分解及重构信号、图像的多种工具。工具箱中包含的各种小波分析函数,可用于对信号与图像的压缩处理,压缩后能保持信号与图像的特征基本不变,压缩比高,压缩速度快,且在传递过程中具有抗干扰能力。

MATLAB与图像压缩基于小波分析的图像压缩方法很多,包括低频信息保留压缩、小波包最佳基方法、小波域纹理模型方法、小波变换零树压缩、小波变换向量量化压缩等。在此结合MATLAB中小波程序设计,介绍其中几种方法的原理与实现过程,包括低频信息保留压缩、小波包最佳基方法、小波变换向量量化压缩;同时利用

15

[6]

湖南工业大学本科毕业设计(论文)过程管理资料

了DCT压缩编码算法实现不同算法压缩图像效果的对比;利用小波变换的其他应用理解小波变换的广泛应用。

(1) 低频信息保留压缩方法

一个图像在进行小波分解后,可得到一系列不同分辨率的子图像,不同分辨率的子图像对应的频率是不相同的。高分辨率即高频子图像上大部分点的数值都接近于0,越是高频这种现象越明显。对一个图像来说,表现一个图像最主要的部分是低频部分,所以一个最简单的压缩方法是利用小波分解,去掉图像的高频部分而只保留低频部分,图像压缩可按如下程序进行处理。

本论文的程序中使用的MATLAB 函数包括: (1) wavedec2为多尺度二维小波分解即二维多分辨分析函数,完成对信号X在尺度N 上的二维分解。(2) appcoef2 :提取二维小波分解低频系数,该函数是一个二维小波分析函数,它主要用于从多尺度二维小波分解的分解结构中提取二维信号的低频系数,从某种意义上说,它常常和Wavedec2 函数配套使用。(3) detcoef2 :提取二维小波分解高频系数,它与appcoef2 函数相对应,用来从分解结构中提取二维小波变换的高频系数, 它也是常常和Wavedec2 函数配套使用的。(4) wrcoef2 :对二维小波系数进行单支重构。该函数是对二维信号的分解结构用指定的小波函数或重构滤器进行重构。(5) wcodemat :对矩阵进行量化编码。当选中参数’mat’时,进行全局编码,全体矩阵元素依绝对值大小在整个矩阵中进行排列。经过量化编码后的图像比原来的图像在颜色对比上要变得柔和一些。

(2) 小波包最佳基方法

小波分析是把信号s分解成低频a1和高频d1两部分,在分解中,低频a1中失去的信息由高频d1捕获。在下一层的分解中,又将a1分解成低频a2和高频d2两部分,低频a2中失去的信息由高频d2捕获,如此类推下去,可以进行更深层次的分解;小波包分解则不然,它不仅对低频部分进行分解,而且对高频部分也进行分解,因此,小波包分解是一种比小波分解更为精细的分解方法。小波包最佳基方法按照如下几个步骤进行:

1) 信号的小波包分解。选一个小波并确定一个小波分解的层次N ,然后对信号s 进行N层小波包分解。

2) 计算最佳树亦即确定最佳小波包基。对于一个给定的熵标准,计算最佳树。 3) 小波包分解系数的阈值量化。对于每一个小波包分解系数,选择一个适当的阈值并对系数进行阈值量化。

4) 小波包重构。根据第N层的小波包分解系数和经过量化处理系数,进行小波包重构。

16

湖南工业大学本科毕业设计(论文)过程管理资料

在这四个步骤之中,最关键的就是如何选取阈值和如何进行阈值的量化,从某种程度上说,它直接关系到信号压缩的质量。

小波包最佳基方法中利用了ddencmp函数获取在压缩过程中的默认值阈值、熵标准,然后再使用wpdencmp 函数进行小波包信号压缩。由于这两个函数都是基于小波包分析的函数,内部调用了二维小波包分解函数wpdec2 以及二维小波包重构函数wprec2 ,使用起来十分方便,代码相当简练。

(3) 向量量化压缩方法

向量量化压缩方法( vector quantization method)的一般过程是:一帧图像先经滤波器作多分辨率分解后,得到各级的带通细节分量和最低一级的低通平滑分量,分别加以量化和编码后再作传送。在接收端则经解码后再经多分辨率综合来重建图像。滤波器组多采用双正交型,以减小相位误差。

向量量化的核心思想是利用码本( code book) 来进行信息的传递和存贮。所谓码本是一种事先约定好的映射,按一定准则把空间划分成若干子空间,然后把图像各像素的输入值分配到各组中,每组用一个向量来代表,称为码字。这组码字及相应序号便构成一个码本。工作时,这个码本在发送端和接收端各有一本,每输入一个像素便根据距离最小原则确定其代表向量,并由码本中查得其对应序号,将其传送出去。在接收端则根据此序号由码本中查得相应码字,再据以重建图像。由于传送的只是序号,使得传输数据量得到压缩。

3.2.2 MATLAB用户图形界面

用户界面是指:人与机器(或程序)之间交互作用的工具和方法。如键盘、鼠标、跟踪球、话筒都可成为与计算机交换信息的接口。

MATLAB中的图形用户界面[7](Graphical User Interfaces ,GUI)是由窗口、光标、按键、菜单、文字说明等对象(Objects)构成的一个用户界面。用户通过一定的方法(如鼠标或键盘)选择、激活这些图形对象,使计算机产生某种动作或变化,比如实现计算、绘图等。

用户图形界面(GUI)是程序的图形化界面。一个好的GUI 能够使程序更加容易的使用。它提供用户一个常见的界面,还提供一些控件,例如,按钮,列表框,滑块,菜单等。用户图形界面应当是易理解且操作是可以预告的,所以当用户进行某一项操作,它知道如何去做。例如,当鼠标在一个按钮上发生了单击事件,用户图形界面初始化它的操作,并在按钮的标签上对这个操作进行描述。

GUI是实现人机交互的中介,可以通过它实现数据输入、处理和输出。MATLAB提供了一个专门的GUI界面设计工具——GUIDE,使用该工具,可以快速完成GUI设计任

17

湖南工业大学本科毕业设计(论文)过程管理资料

务:

·输出GUI;

·使用GUIDE输出编辑器,可以通过单击和拖拉GUI组件很容易地创建GUI; ·GUI编程;

·GUIDE自动生成一个控制GUI如何操作的M文件,该M文件初始化GUI并包含一个所有GUI回调(用户单击GUI组件时执行的命令)的框架,使用M文件编辑器,可以向回调中添加代码,运行相关函数。

在本论文中利用了MATLAB设计了一个非常方便我们操作实验的用户图形界面。如下图3.1所示:

图3.1 “压缩图像”用户图形界面

3.3 系统功能模块

根据用户操作需求,将系统划分如下,并对模块的划分及功能进行描述。该系统的模块主要分为两个部分,一是图像操作模块,二是图像显示模块。

模块图如图3.2所示:

18

湖南工业大学本科毕业设计(论文)过程管理资料

图像操作模块 图像显示模块 小波图像处理系统

打开图像,图像灰度变换 压缩图像小波变换其他应用 AXESFIGURE轴系模块 图形操作模块主要实现了打开图像,彩色图像变换灰度图像,退出系统;压缩图像——小波压缩,DCT压缩,二维小波压缩;小波变换其他应用——小波消噪处理。

图像显示模块主要有两种,分为三部分,第一部分是原图像展示区,第二部分是小波压缩图像展示区,第三部分是其他压缩方法及小波变换其他应用图像展示区。

模块

图3.2 系统功能模块

19

湖南工业大学本科毕业设计(论文)过程管理资料

第4章 系统实现

4.1 系统的使用方法

打开MATLAB,运行程序,即可进入到如图3.1所示“图像压缩”界面。

4.2 重要代码的实现

4.2.1打开图像

代码:

global img_src; ???????????????????? [filename, pathname] = uigetfile( ...

{'*.bmp;*.jpg;*.png;*.jpeg', 'Image Files (*.bmp, *.jpg, *.png, *.jpeg)'; ... '*.*', 'All Files (*.*)'}, ... 'Pick an image');

if isequal(filename,0) || isequal(pathname,0) return; end

axes(handles.axes_src); fpath=[pathname filename]; img_src=imread(fpath); imshow(img_src); title('原始图像');

setappdata(handles.figure_haah,'img_src',img_src);

进入图像压缩界面(图3.1)后,点击“打开图像”按钮,即会显示出如图4.1所示界面;然后选择一幅图片(这里选择了图片\),“确定”即可实现打开图像,进入如图4.2所示界面。

20

湖南工业大学本科毕业设计(论文)过程管理资料

图4.1 进入“打开图像”界面

图4.2 图像打开后的界面

21

湖南工业大学本科毕业设计(论文)过程管理资料

4.2.2变换为灰度图像

代码: global img_src; L=img_src; L=double(L);

Xrgb=0.2990*L(:,:,1)+0.5870*L(:,:,2)+0.1140*L(:,:,3); NbColors=255;

X=wcodemat(Xrgb,NbColors); map1=gray(NbColors); axes(handles.axes5); image(X); colormap(map1); title('原图像的灰度图');

在进入图4.2所示界面后,单击“灰度变化”按钮,就可以实现彩色图像的灰度变换。如图4.3所示:

图4.3 实现灰度变换后的界面

22

湖南工业大学本科毕业设计(论文)过程管理资料

4.2.3小波压缩——低频信息保留压缩方法

代码: global img_src; L=img_src; L=double(L);

Xrgb=0.2990*L(:,:,1)+0.5870*L(:,:,2)+0.1140*L(:,:,3); NbColors=255;

X=wcodemat(Xrgb,NbColors); map1=gray(NbColors); axes(handles.axes5); image(X); colormap(map1); title('原图像的灰度图'); axis square;

disp('灰度图像X的大小'); whos('X')

[c,s]=wavedec2(X,2,'bior3.7'); ca1=appcoef2(c,s,'bior3.7',1); ch1=detcoef2('h',c,s,1);%水平方向 cv1=detcoef2('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]; axes(handles.axes_dst); image(c1); colormap(gray); axis square;

title('分解后低频和高频信息'); ca1=appcoef2(c,s,'bior3.7',1); ca1=wcodemat(ca1,440,'mat',0);

23

湖南工业大学本科毕业设计(论文)过程管理资料

ca1=0.5*ca1;

disp('第一次压缩后图像的大小为:'); axes(handles.axes3); image(ca1); colormap(gray); %colormap(map); axis square;

title('第一次压缩图像'); whos('ca1')

ca2=appcoef2(c,s,'bior3.7',2); ca2=0.25*ca2; axes(handles.axes4); image(ca2); colormap(gray); %colormap(map); axis square;

title('第二次压缩图像');

disp('第二次压缩后图像大小为:'); whos('ca2')

无论进入到图4.2或者图4.3所示界面,想要进行小波压缩,就选定单选框中的“小波压缩”,系统即会进行相应的操作,实现对所选图像的小波压缩变换,如图4.4。

24

湖南工业大学本科毕业设计(论文)过程管理资料

图4.4“小波变换”实现界面

结果分析:

程序运行结果见附图13。原图像文件tyd39.jpg是一幅RGB彩色图像,根据“MATLAB小波工具箱只能处理索引图像,对于非索引的真彩色RGB 图像”,我们必须将此图转换为灰度图像。

转换后的灰度图像大小为6291456 B,第一次压缩后生成文件大小为1623432 B,压缩比为74%;第二次压缩后生成文件大小为433608 B,压缩比为94%。可以看出,第一次压缩我们是提取原始图像中小波分解第一层的低频信息,此时压缩效果较好,压缩比较小,第二次压缩是提取第一层分解低频部分的低频部分,即小波分解第二层的低频部分,其压缩比较大,压缩效果在视觉上也基本上过得去。

这种保留原始图像中低频信息的压缩方法是一种最简单的压缩方法,它不需经过其它处理即可获得较好的压缩效果。从理论上说,我们可以获得任意压缩比的压缩图像。

4.2.4二维小波压缩

global img_src; H=img_src; H=double(H);

25

湖南工业大学本科毕业设计(论文)过程管理资料

Grgb=0.2990*H(:,:,1)+0.5870*H(:,:,2)+0.1140*H(:,:,3); NbColors=255;

G=wcodemat(Grgb,NbColors); map2=gray(NbColors); figure(4); image(G); colormap(map2); title('原图像的灰度图'); %转换成为灰度级索引图像

[CA1,CH1,CV1,CD1]=dwt2(G,'bior3.7'); %从分解系数中提取近似和细节 [CA1,CH1,CV1,CD1]=dwt2(G,'bior3.7'); A1=upcoef2('a',CA1,'bior3.7',1); H1=upcoef2('h',CH1,'bior3.7',1); V1=upcoef2('v',CV1,'bior3.7',1); D1=upcoef2('d',CD1,'bior3.7',1); %显示近似和细节

figure (' name ','近似分量A1'); colormap(map2); subplot(2,2,1);

image(wcodemat(A1,192)); title('近似A1'); subplot(2,2,2);

image(wcodemat(H1,192)); title('水平细节H1'); subplot(2,2,3);

image(wcodemat(V1,192)); title('垂直细节V1'); subplot(2,2,4);

image(wcodemat(D1,192)); title('对角细节D1'); %对图像进行多尺度分解 [C,S]=wavedec2(G,2,'bior3.7');

26

湖南工业大学本科毕业设计(论文)过程管理资料

%提取分解后的近似和细节系数 CA2=appcoef2(C,S,'bior3.7',2); [CH2,CV2,CD2]=detcoef2('all',C,S,2); [CH1,CV1,CD1]=detcoef2('all',C,S,2); %从系数C重构第二层近似 A2=wrcoef2('a',C,S,'bior3.7',2); H1=wrcoef2('h',C,S,'bior3.7',1); V1=wrcoef2('v',C,S,'bior3.7',1); D1=wrcoef2('d',C,S,'bior3.7',1); H2=wrcoef2('h',C,S,'bior3.7',2); V2=wrcoef2('v',C,S,'bior3.7',2); D2=wrcoef2('d',C,S,'bior3.7',2); %显示多尺度分解的结果

figure (' name ','多尺度分解后的近似与细节'); colormap(map2); subplot(2,4,1);

image(wcodemat(A1,192)); title('近似A1'); subplot(2,4,2);

image(wcodemat(H1,192)); title('水平细节H1'); subplot(2,4,3);

image(wcodemat(V1,192)); title('垂直细节V1'); subplot(2,4,4);

image(wcodemat(D1,192)); title('对角细节D1'); subplot(2,4,5);

image(wcodemat(A2,192)); title('近似A2'); subplot(2,4,6);

image(wcodemat(H2,192)); title('水平细节H2');

27

湖南工业大学本科毕业设计(论文)过程管理资料

subplot(2,4,7);

image(wcodemat(V2,192)); title('垂直细节V2'); subplot(2,4,8);

image(wcodemat(D2,192)); title('对角细节D2');

%从多尺度分解后的系数重构原始图像并显示结果 G0=waverec2(C,S,'bior3.7');

figure ('name','多尺度分解后的系数重构原始图像'); image(G0); colormap(map2); colorbar;

同样的,想要进行二维小波压缩,就选定主界面单选框中的“二维小波”,系统即会进行相应的操作,实现对原图像的二维小波变换,弹出如图4.5,图4.6,图4.7所示三个FIGURE图像显示面框,分别显示出“原图像的灰度图”、“近似分量A1”和“近似分量A1和A2及各细节分量”。

图4.5 原图像的灰度图

28

湖南工业大学本科毕业设计(论文)过程管理资料

图4.6 二维小波压缩中近似分量A1

图4.7 多尺度分解后的近似与细节

29

湖南工业大学本科毕业设计(论文)过程管理资料

结果分析:

进行二维小波压缩后,我们在MATLAB的COMMAND WINDOW中我们可以看到如下数据:

原图像的灰度图的大小:

Name Size Bytes Class G 768x1024 6291456 double array Grand total is 786432 elements using 6291456 bytes 近似A1大小为:

Name Size Bytes Class A1 796x1052 6699136 double array Grand total is 837392 elements using 6699136 bytes 近似A2大小为:

Name Size Bytes Class A2 768x1024 6291456 double array Grand total is 786432 elements using 6291456 bytes 重构图像的大小为:

Name Size Bytes Class G0 768x1024 6291456 double array Grand total is 786432 elements using 6291456 bytes

4.2.5小波包压缩变换

代码: global img_src; F=img_src; F=double(F);

Ergb=0.2990*F(:,:,1)+0.5870*F(:,:,2)+0.1140*F(:,:,3); NbColors=255;

E=wcodemat(Ergb,NbColors); map4=gray(NbColors); figure('name','小波包压缩'); subplot(1,2,1);

image(E);colormap(map4); title('原始图像');

30

湖南工业大学本科毕业设计(论文)过程管理资料

%================================== %采用默认的全局阈值进行图像压缩处理 [thr,sorh,keepapp,crit]=ddencmp('cmp','wp',E);

[Ec,treed,perf0,perfl2]=wpdencmp(E,sorh,3,'bior3.1',crit,thr,keepapp); subplot(1,2,2);

image(Ec);colormap(map4); title('压缩后的图像');

%================================== %给出压缩效率

disp('小波分解系数中置0的系数个数百分比:'); perf0

disp('压缩后图像剩余能量百分比:'); perfl2

该算法在实现时的系统操作方法与文4.2.3中的操作方法基本一致,在此不再重述。

图 4.8 小波包压缩

31

湖南工业大学本科毕业设计(论文)过程管理资料

同样,运行结束后,根据我们使用的代码,我们在MATLAB的COMMAND WINDOW中也会看到这样的数据:

小波分解系数中置0的系数个数百分比: perf0 = 56.4502

压缩后图像剩余能量百分比: perfl2 = 99.9978

4.2.6 DCT压缩

代码: global img_src; I=rgb2gray(img_src); J=dct2(I);

figure('name','色图'); imshow(log(abs(J))); colormap(jet(64)); colorbar; J(abs(J)<10)=0; K=idct2(J)/255;

figure('name','DCT压缩的图像'); imshow(I);

disp('DCT压缩的图像的大小:'); whos('I')

figure('name','DCT压缩编码后的图像'); imshow(K);

disp('DCT压缩编码后的图像的大小:'); whos('K')

类似与小波压缩操作,无论进入以上所示任何界面,想要进行DCT压缩,就选定主界面中单选框的“DCT压缩”,系统即会进行相应的操作,实现对原图像的DCT变换,会弹出如图4.9、图4.10、图4.11所示三个FIGURE图像显示面框。

32

湖南工业大学本科毕业设计(论文)过程管理资料

图4.9 原图像的色图

图4.10 DCT压缩的灰度图像

33

湖南工业大学本科毕业设计(论文)过程管理资料

图4.11DCT 压缩后的图像

在MATLAB的COMMAND WINDOW中可以看到这样的数据: DCT压缩的图像的大小:

Name Size Bytes Class I 768x1024 786432 uint8 array Grand total is 786432 elements using 786432 bytes DCT压缩编码后的图像的大小:

Name Size Bytes Class K 768x1024 6291456 double array Grand total is 786432 elements using 6291456 bytes

4.2.7小波消噪

代码: global img_src; A=img_src; A=double(A);

Brgb=0.2990*A(:,:,1)+0.5870*A(:,:,2)+0.1140*A(:,:,3); NbColors=255;

34

湖南工业大学本科毕业设计(论文)过程管理资料

B=wcodemat(Brgb,NbColors); map3=gray(NbColors); figure('name','小波消噪处理') subplot(2,2,1); image(B); %colormap(map3); title('原始图像灰度图'); axis square;

%生成含噪图像并图示 init=2055615866; randn('seed',init); BB=B+8*randn(size(B)); subplot(2,2,2); image(BB); colormap(map3); title('含噪图像'); axis square;

%对图像进行消噪处理

%用小波函数coif2对图像XX进行2层分解 [cc,dd]=wavedec2(BB,2,'coif2'); n=[1,2];%设置尺度向量 p=[10.28,24.08];%设置阈值向量 %对三个高频系数进行阈值处理 nc=wthcoef2('h',cc,dd,n,p,'s'); nc=wthcoef2('v',cc,dd,n,p,'s'); nc=wthcoef2('d',cc,dd,n,p,'s'); B1=waverec2(nc,dd,'coif2'); subplot(2,2,3); image(B1); colormap(map3);

title('第一次消噪后的图像'); axis square;

%再次对三个高频系数进行阈值处理

35

湖南工业大学本科毕业设计(论文)过程管理资料

mc=wthcoef2('h',nc,dd,n,p,'s'); mc=wthcoef2('v',nc,dd,n,p,'s'); mc=wthcoef2('d',nc,dd,n,p,'s');

%对更新后的小波分解结构进行重构并图示结果 B2=waverec2(mc,dd,'coif2'); subplot(2,2,4); image(B2); colormap(map3);

title('第二次消噪后的图像'); axis square;

想要进行小波消噪处理,就选定单选框中的“小波消噪”,系统即会进行相应的操作,实现对原图像的小波消噪处理,如图4.12所示。

图4.12 小波消噪处理

36

湖南工业大学本科毕业设计(论文)过程管理资料

第5章 总结体会

5.1 小波图像压缩总结

论文利用小波变换特性对彩色图像进行压缩编码。在图像压缩编码中,选择了一维小波连续变换和二维小波变换,为了形成对比还运用了离散余弦变换。对于以RGB表示的彩色图像,为了去除各分量之间的相关性, 我们首先把图像转换到YIQ颜色空间,然后对Y、I和Q这三个分量分别进行小波分解。 针对分解系数不同的统计特性,我们采用不同的方法对它们进行量化编码。

从系统实现结果对比中我们可以知道,应用小波变换进行图像压缩时,在理论上可以获得最好的压缩效果,且实现起来也较为简单,而利用小波包分析进行图像压缩时,随着所选用的分解小波、分解层次和量化阈值的不同且实现起来也很简单。因此,小波变换在图像的压缩方面显示出了它的特性,即为图像从空间域变换到时间域提供了一种非常有效的方法,其作用与专门用于图像压缩的离散余弦变换(DCT)、傅里叶变换等类似,当然任何方法既有区别于其他方法的优点,同时又具有一定的缺陷,因此,要很好地对图像进行压缩处理,需要综合利用多种技术进行,这对基于小波变换的图像压缩也不例外,往往也需要利用小波分析和其他相关技术的有机结合才能达到较为完美的结果。

但是小波变换用于图像数据压缩时需要考虑的几个问题,任何实正交的小波对应的滤波器组都可以实现图像的分解与合成,但是并不是任何分解都能满足所须的要求,同一幅图像,用不同的小波基进行分解所得到的压缩效果是不一样的。

小波变换继承了傅里叶分析的优点,同时又克服它的许多缺点,所以它在静态和动态图像压缩领域得到广泛的应用,并且已经成为某些图像压缩国际标准(如MPEG—4)的重要环节。当然,像其他变换编码一样,在压缩比特别高的时候,小波变换压缩量化后的重建图像也会产生几何畸变。图像压缩是一个很有发展前途的研究领域,这一领域的突破对于通信和多媒体事业的发展将具有深远的影响。目前一些公司将这种技术用于Internet环境中的图像数据传输,提供商业化的服务,对于缓解网络带宽不足、加快图像信息传播速度起到了很好的推进作用。图文资料数字化必然会产生大量的图像数据,对于高比率图像压缩算法的需求尤为迫切。作为一种优秀的图像压缩算法,小波变换在这一领域具有非常好的应用前景。

37

湖南工业大学本科毕业设计(论文)过程管理资料

5.2 小波图像分析展望

小波分析已对许多学科产生多方面的影响,并已激起了众多科学家和科技工作者的极大热情。 目前人们除了理论研究之外,更加注得利用小波解决一些生产实际问题。 另外,小波与其它理论的综合运用也日益增多。

(1) 小波理论研究的发展趋势

由于目前小波理论尚不完善,某些现象不能用现有的理论技术方法来解释。这就推动了小波理论的研究,目前函数空间的刻画、基数插值小波、高维小波、向量小波、多进小波、周期小波等小波理论研究的主要方向。另外,最优小波基的选择方法一直是人们关注的问题之一。

(2) 小波分析应用研究的发展趋势

目前,小波应用的深度和广度得到进一步拓展。在某些方面已取得了传统方法无法达到的效果,人们正在挖掘有前景的应用领域。

小波分析是一门新的交叉科学,对它进行理论研究、仿真计算、实验分析都是很重要的,目前在高校、研究所开展的比较好。 现在正在逐渐走出仿真及实验室阶段, 向人们提供具有实用价值的小波分析技术,以小波作为工具的分析软件也正日益丰富。

(3) 小波分析与其它理论的综合运用

小波分析与神经网络、模糊数学、分形分析、遗传优化等方法相结合后,形成小波神经网络、小波模糊神经网络、小波分形等方法,是分析非平稳、非线性问题的理想手段。 如在高速压缩机的故障检测与诊断中,综合运用了二进小波分析和谐波分析、分形分析,得到了满意的效果。将分形理论和高维小波相结合,研究复杂信息的滤波、压缩、去噪和重构的方法,以及临界现象的奇异性和复杂信息的时频分形特征的分析方法等都具创新性和前沿性。总之,小波分析与其它理论的综合运用也正在日益增多。

38

湖南工业大学本科毕业设计(论文)过程管理资料

参考文献

[1] 王正林,刘明. 精通MATLAB 7 [M]. 北京:电子工业出版社,2006. [2] 姚敏. 数字图像处理[M]. 北京:机械工业出版社,2006.

[3] 张娇. 基于小波变换对彩色图像压缩编码和分级传输[D].上海:上海交通大

学,1999.

[4] 王家文,李仰军. MATLAB7.0图形图像处理[M].北京:国防工业出版社,2006. [5] 苏金明,王永利. MATLAB 7.0实用指南[M].北京:电子工业出版社,2004. [6] 林雪松, 周婧林, 德新. MATLAB 7.0应用集锦 [M]. 北京:机械工业出版社,2006. [7] 王家文, 王皓, 刘海. MATLAB7.0编程基础[M]. 北京:机械工业出版社,2005. [8] 沈连丰,梁大志.蓝牙系统及其发展[J]. 半导体技术,2000,(6):1-4.

[9] 罗军辉, 冯平.MATLAB 7.0在图像处理中的应用[M]. 北京:机械工业出版

社,2005.

[10] 许波, 刘征. MatLab 工程数学应用[M]. 北京:清华大学出版社, 2000. [11] 崔锦泰著[美], 程正兴译. 小波分析导论[M]. 西安:西安交通大学出版社, 1998. [12] 孙祥, 徐流美, 吴清. MATLAB 7.0基础教程[M]. 北京:清华大学出版社,2005. [13] 谢永华,傅德胜. 基于小波变换的多源遥感图像的信息融合[J]. 遥感技术与应

用,2001,16(4),55-62.

[14] 罗军辉. MATLAB 7.0 在数字信号处理中的应用[M]. 北京:机械工业出版社,2005. [15] Maria Petrou [英]Panagiota Bosdogianni [希]. 数字图像处理疑难解析[M]. 北京:

国防工业出版社,2005.

[16] 王慧琴. 数字图像处理[M]. 北京:北京邮电大学出版社. 2006.

[17] 丁贵广, 何耀华, 郭宝龙. 适于硬件实现的零树编码算法[J]. 小型微型计算机

系统, 2003 , 24 (7):1380—1382.

[18] SAID A , PEARLMAN W A. A new , fast , and efficient image code based on set

partitioning in hierarchical t rees [J] . IEEE Trans on Circuit s and Systems for Video Tech. 1996 , 6 (3) :243—250.

[19] 李晓春,陈京. 基于小波变换的图像融合算法研究[J]. 遥感技术与应用,

2003:18(1).

[20] 陈德军,盛翊智,陈绵云. 基于数据仓库的融合式DSS结构的研究[J]. 华中科技大

学学报, 2000:30(11).

39

湖南工业大学本科毕业设计(论文)过程管理资料

致 谢

论文从选题的确定,论文的写作、修改到最后定稿得到了我的指导老师刘立教授的悉心指导,倾注了导师大量的心血。特别是他多次询问程序编写情况及论文写作进程,并为我指点迷津,帮助我开拓思路,精心点拨,热忱鼓励。

导师渊博的专业知识,严谨的治学态度,精益求精的工作作风,诲人不倦的高尚师德,严以律己、宽以待人的崇高风范,朴实无华、平易近人的人格魅力对我影响深远。不仅使我树立了远大的学术目标、掌握了基本的研究方法,还使我明白了许多待人接物与为人处世的道理。在此,谨向我的导师刘立老师表示崇高的敬意和衷心的感谢!

此外,还要感谢在大学四年中帮助我的人,感谢我们计算机与通信学院各位老师在学习上的点拨,并为我们提供学习和实验研究场所。同时,也要感谢在论文写作过程中,帮助过我、并且共同奋斗四年的大学同学们,能够顺利完成论文,是因为一路上有你、有你们,再次衷心地感谢所有在我论文写作过程中给予过我帮助的人们,谢谢!

学生签名:李娜

日 期:2009年6月8日

40

本文来源:https://www.bwwdw.com/article/kyap.html

Top