基于matlab-的数字图像图像压缩与编码.doc
《基于matlab-的数字图像图像压缩与编码.doc》由会员分享,可在线阅读,更多相关《基于matlab-的数字图像图像压缩与编码.doc(27页珍藏版)》请在沃文网上搜索。
1、基于matlab 的数字图像图像压缩与编码(含matlab源程序)21目 录摘要IAbstractII1.傅里叶变化及反变化11.1 原理及计算公式11.2 傅里叶变换与反变换程序21.3傅里叶变换及反变换结果32.小波变换42.1原理及公式42.1.1原理简介42.1.2DWT对目标图片的处理及相关函数介绍42.2小波变换程序52.3 小波变换结果63.小波包变换73.1 原理及公式73.2 小波包变换程序73.3 小波包变换结果84.余弦离散变换104.1原理及公式104.2余弦离散变换程序104.3余弦离散变化结果115 离散沃尔什、二维哈达玛变换125.1 原理及公式125.1.1 离
2、散沃尔什变换125.1.2 哈达玛变换125.2 Walsh-Hadamard变换程序135.3 二维离散哈达玛变换结果136. 小波变换图像压缩146.1 小波变换压缩简介146.2小波压缩变换程序146.3 小波压缩结果166.4 压缩前后图像比较177.离散余弦变换图像压缩187.1 原理简介187.2 离散余弦变换图像压缩程序187.3离散余弦变换图像压缩结果197.4压缩图与原图对比208.实验心得219.参考文献21摘要MATLAB是由美国mathworks公司发布的主要面对科学计算、可视化以及交互式程序设计的高科技计算环境。它将数值分析、矩阵计算、科学数据可视化以及非线性动态系统
3、的建模和仿真等诸多强大功能集成在一个易于使用的视窗环境中,为科学研究、工程设计以及必须进行有效数值计算的众多科学领域提供了一种全面的解决方案,并在很大程度上摆脱了传统非交互式程序设计语言(如C、Fortran)的编辑模式,代表了当今国际科学计算软件的先进水平MATLAB在数学类科技应用软件中在数值计算方面首屈一指。MATLAB可以进行矩阵运算、绘制函数和数据、实现算法、创建用户界面、连接其他编程语言的程序等,主要应用于工程计算、控制设计、信号处理与通讯、图像处理、信号检测、金融建模设计与分析等领域。MATLAB的基本数据单位是矩阵,它的指令表达式与数学、工程中常用的形式十分相似,故用MATLA
4、B来解算问题要比用C,FORTRAN等语言完成相同的事情简捷得多,并且mathwork也吸收了像Maple等软件的优点,使MATLAB成为一个强大的数学软件。在新的版本中也加入了对C,FORTRAN,C+ ,JAVA的支持。可以直接调用,用户也可以将自己编写的实用程序导入到MATLAB函数库中方便自己以后调用,此外许多的MATLAB爱好者都编写了一些经典的程序,用户可以直接进行下载就可以用。本次课程设计则是基于MATLAB图像变换及压缩编码,着重训练matlab在图像处理方面的应用,能够运用相关软件进行模拟分析。通过对采集的图像进行读入图像并对图像进行傅利叶变换、小波变换、小波包变换、离散余弦
5、变换、离散沃尔什变换,二维哈达玛变换。并分别采用小波变换和离散余弦变换对图像进行压缩,并与原图像进行比较。从而达到对matlab软件的熟悉和程序的书写。关键字: matlab 图像变换 压缩编码AbstractMATLAB is a U.S. companys main face mathworks scientific computing, visualization and high-tech interactive computing environment programming. It numerical analysis, matrix computation, scientifi
6、c data visualization and nonlinear dynamic systems modeling and simulation, and many other powerful features in an easy to use integrated Windows environment for scientific research, engineering design and the need for effective numerical calculation many fields of science provides a comprehensive s
7、olution, and largely out of the traditional non-interactive programming language (such as C, Fortran) of the edit mode, on behalf of the current international advanced level of scientific computing softwareMATLAB application of technology in mathematics classes in numerical computing software, secon
8、d to none. MATLAB matrix operations can be carried out, drawing functions and data, algorithm, create user interfaces, connecting the procedures of other programming languages, mainly used in engineering calculations, control design, signal processing and communications, image processing, signal det
9、ection, financial modeling design and analysis and other fields.MATLABs basic data unit is the matrix, its expression and mathematics instruction, engineering is very similar to the form commonly used, it is calculated using MATLAB to solve the problem than using C, FORTRAN and other languages accom
10、plish the same thing much more simple and mathwork also absorbed the advantages of software such as Maple, MATLAB makes a powerful mathematical software. In the new version also adds support for C, FORTRAN, C, JAVA support. Can be called directly, the user can also write their own utility function l
11、ibrary into MATLAB to facilitate their future calling, in addition to many fans have written a number of MATLAB classic procedure, the user can download directly you can use.The course design is based on the MATLAB image transformation and compression, focusing on training matlab in image processing
12、 applications, can be analyzed using simulation software. Images collected by the image and the image read into the Fourier transform, wavelet transform, wavelet packet transform, discrete cosine transform, discrete Walsh transform, two Weiha dammar transformation. The approach of using wavelet tran
13、sform and discrete cosine transform, image compression, compared with the original image. Matlab software to achieve the familiar and the writing process.Keywords: matlab image transform coding1.傅里叶变化及反变化1.1 原理及计算公式Matlab 函数 fft、fft2 和 fftn 分别可以实现一维、二维和 N 维 DFT 算法;而函数 ifft、ifft2 和 ifftn 则用来计算反 DFT 。
14、这些函数的调用格式如下:Afft(X,N,DIM)其中,X 表示输入图像;N 表示采样间隔点,如果 X 小于该数值,那么 Matlab 将会对 X 进行零填充,否则将进行截取,使之长度为 N ;DIM 表示要进行离散傅立叶变换。Afft2(X,MROWS,NCOLS) 其中,MROWS 和 NCOLS 指定对 X 进行零填充后的 X 大小。Afftn(X,SIZE)其中,SIZE 是一个向量,它们每一个元素都将指定 X 相应维进行零填充后的长度。一个图象尺寸为MN的离散函数f(x,y)的离散傅立叶变化如下: (1.1)f(x,y)可以通过对F(u,v)求傅立叶逆变化获得,其表达式如下: (1.
15、2)式中,。式(1.1)和式(1.2)构成了二维离散傅立叶变化对。变量u和v是频率变量,x和y是空间变量。常量的位置并不重要,可以将它放在逆变化之前,还可以将常量分为两个相等的常数,分别乘在正变化和逆变化式前。在实际工程应用中分析幅度谱较多,习惯上也常把幅度谱称为频谱。二维离散傅立叶变化(DFT)有着较强的物理意义,所以在信号分析与处理领域占有重要的地位。DFT变化进行图象处理时有如下一些特点:(1)直流成分为。(2)幅度谱对称于原点。(3)图象平移后,幅度谱不发生变化,仅有相位发生了变化。1.2 傅里叶变换与反变换程序A=imread(E:图图yw.jpg);I=rgb2gray(A);C=
16、fft2(double(I); %对图像进行傅立叶变换B=fftshift(fft2(double(I); %将直流分量移到频谱图的中心D=ifft2(B); %傅立叶反变换figure; %画图像原始图imshow(I);title(原图);figure;imshow(log(abs(B)+1),);title(直接变换频谱图);figure; %画直接变换频谱图imshow(abs(D),);title(反傅里叶变换图);1.3傅里叶变换及反变换结果图1.3 傅里叶及反傅里叶变化图2.小波变换2.1原理及公式2.1.1原理简介信号分析是为了获得时间和频率之间的相互关系。小波变换(DWT)是
17、现代谱分析工具,他既能考察局部时域过程的频域特征,又能考察局部频域过程的时域特征,因此即使对于非平稳过程,处理起来也得心应手。傅立叶变换提供了有关频率域的信息,但有关时间的局部化信息却基本丢失。与傅立叶变换不同,小波变换能将图像变换为一系列小波系数,这些系数可以被高效压缩和存储,此外,小波的粗略边缘可以更好地表现图像,因为他消除了DCT压缩普遍具有的方块效应。通过缩放母小波(Mother wavelet)的宽度来获得信号的频率特征, 通过平移母小波来获得信号的时间信息。对母小波的缩放和平移操作是为了计算小波系数,这些小波系数反映了小波和局部信号之间的相关程度。2.1.2DWT对目标图片的处理及
18、相关函数介绍在Matlab中,二维离散小波变化对于图像的处理是通过函数的形式来进行的,主要的处理函数有如下几种:表1 常用的DWT函数函数名函数功能dwt2二维离散小波变换wavedec2二维信号的多层小波分解idwt2二维离散小波反变换upcoef2由多层小波分解重构近似分量或细节分量wcodemat窗体顶端对矩阵进行量化编码 窗体底端dwt2函数的应用格式为cA,cH,cV,cD=dwt2(X,wname);其意义为使用指定的小波基函数 wname 对二维信号 X 进行二维离散小波变换。cA,cH,cV,cD 分别为近似分.g(R E E量、水平细节分量、垂直细节分量和对角细节分量。wav
- 1.请仔细阅读文档,确保文档完整性,对于不预览、不比对内容而直接下载带来的问题本站不予受理。
- 2.下载的文档,不会出现我们的网址水印。
- 3、该文档所得收入(下载+内容+预览)归上传者、原创作者;如果您是本文档原作者,请点此认领!既往收益都归您。
下载文档到电脑,查找使用更方便
20 积分
下载 | 加入VIP,下载更划算! |
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 基于 matlab 数字图像 图像 压缩 编码