ImageVerifierCode 换一换
格式:DOCX , 页数:23 ,大小:572.96KB ,
资源ID:8599972      下载积分:3 金币
快捷下载
登录下载
邮箱/手机:
温馨提示:
快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。 如填写123,账号就是123,密码也是123。
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝    微信支付   
验证码:   换一换

加入VIP,免费下载
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【https://www.bdocx.com/down/8599972.html】到电脑端继续下载(重复下载不扣费)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录   QQ登录  

下载须知

1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。
2: 试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。
3: 文件的所有权益归上传用户所有。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 本站仅提供交流平台,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

版权提示 | 免责声明

本文(基于matlab 的数字图像图像压缩与编码含matlab源程序.docx)为本站会员(b****6)主动上传,冰豆网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知冰豆网(发送邮件至service@bdocx.com或直接QQ联系客服),我们立即给予删除!

基于matlab 的数字图像图像压缩与编码含matlab源程序.docx

1、基于matlab 的数字图像图像压缩与编码含matlab源程序基于matlab 的数字图像图像压缩与编码(含matlab源程序)目 录摘要 IAbstract II1.傅里叶变化及反变化 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余弦离散变换程序 10

2、4.3余弦离散变化结果 115 离散沃尔什、二维哈达玛变换 125.1 原理及公式 125.1.1 离散沃尔什变换 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是由美国mathw

3、orks公司发布的主要面对科学计算、可视化以及交互式程序设计的高科技计算环境。它将数值分析、矩阵计算、科学数据可视化以及非线性动态系统的建模和仿真等诸多强大功能集成在一个易于使用的视窗环境中,为科学研究、工程设计以及必须进行有效数值计算的众多科学领域提供了一种全面的解决方案,并在很大程度上摆脱了传统非交互式程序设计语言(如C、Fortran)的编辑模式,代表了当今国际科学计算软件的先进水平MATLAB在数学类科技应用软件中在数值计算方面首屈一指。MATLAB可以进行矩阵运算、绘制函数和数据、实现算法、创建用户界面、连接其他编程语言的程序等,主要应用于工程计算、控制设计、信号处理与通讯、图像处理

4、、信号检测、金融建模设计与分析等领域。MATLAB的基本数据单位是矩阵,它的指令表达式与数学、工程中常用的形式十分相似,故用MATLAB来解算问题要比用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 environmen

6、t programming. It numerical analysis, matrix computation, scientific 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 nume

7、rical calculation many fields of science provides a comprehensive solution, 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 techn

8、ology in mathematics classes in numerical computing software, second 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,

9、 signal processing and communications, image processing, signal detection, 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 t

10、o solve the problem than using C, FORTRAN and other languages accomplish 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 ca

11、lled directly, the user can also write their own utility function library 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 transformati

12、on and compression, focusing on training matlab in image processing 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,

13、two Weiha dammar transformation. The approach of using wavelet transform 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

14、 和 fftn 分别可以实现一维、二维和 N 维 DFT 算法;而函数 ifft、ifft2 和 ifftn 则用来计算反 DFT 。这些函数的调用格式如下:Afft(X,N,DIM)其中,X 表示输入图像;N 表示采样间隔点,如果 X 小于该数值,那么 Matlab 将会对 X 进行零填充,否则将进行截取,使之长度为 N ;DIM 表示要进行离散傅立叶变换。Afft2(X,MROWS,NCOLS) 其中,MROWS 和 NCOLS 指定对 X 进行零填充后的 X 大小。Afftn(X,SIZE)其中,SIZE 是一个向量,它们每一个元素都将指定 X 相应维进行零填充后的长度。一个图象尺寸为M

15、N的离散函数f(x,y)的离散傅立叶变化如下: (1.1)f(x,y)可以通过对F(u,v)求傅立叶逆变化获得,其表达式如下: (1.2)式中,。式(1.1)和式(1.2)构成了二维离散傅立叶变化对。变量u和v是频率变量,x和y是空间变量。常量的位置并不重要,可以将它放在逆变化之前,还可以将常量分为两个相等的常数,分别乘在正变化和逆变化式前。在实际工程应用中分析幅度谱较多,习惯上也常把幅度谱称为频谱。二维离散傅立叶变化(DFT)有着较强的物理意义,所以在信号分析与处理领域占有重要的地位。DFT变化进行图象处理时有如下一些特点:(1)直流成分为。(2)幅度谱对称于原点。(3)图象平移后,幅度谱不

16、发生变化,仅有相位发生了变化。1.2 傅里叶变换与反变换程序A=imread(E:图图yw.jpg);I=rgb2gray(A);C=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

17、 傅里叶及反傅里叶变化图2.小波变换2.1原理及公式2.1.1原理简介信号分析是为了获得时间和频率之间的相互关系。小波变换(DWT)是现代谱分析工具,他既能考察局部时域过程的频域特征,又能考察局部频域过程的时域特征,因此即使对于非平稳过程,处理起来也得心应手。傅立叶变换提供了有关频率域的信息,但有关时间的局部化信息却基本丢失。与傅立叶变换不同,小波变换能将图像变换为一系列小波系数,这些系数可以被高效压缩和存储,此外,小波的粗略边缘可以更好地表现图像,因为他消除了DCT压缩普遍具有的方块效应。通过缩放母小波(Mother wavelet)的宽度来获得信号的频率特征, 通过平移母小波来获得信号的时

18、间信息。对母小波的缩放和平移操作是为了计算小波系数,这些小波系数反映了小波和局部信号之间的相关程度。2.1.2DWT对目标图片的处理及相关函数介绍在Matlab中,二维离散小波变化对于图像的处理是通过函数的形式来进行的,主要的处理函数有如下几种:表1 常用的DWT函数函数名函数功能dwt2二维离散小波变换wavedec2二维信号的多层小波分解idwt2二维离散小波反变换upcoef2由多层小波分解重构近似分量或细节分量wcodemat窗体顶端对矩阵进行量化编码 窗体底端dwt2函数的应用格式为cA,cH,cV,cD=dwt2(X,wname);其意义为使用指定的小波基函数 wname 对二维信

19、号 X 进行二维离散小波变换。cA,cH,cV,cD 分别为近似分.g(R E E量、水平细节分量、垂直细节分量和对角细节分量。wavedec2函数的格式为C,S=wavedec2(X,N,wname);其意义为使用小波基函数 wname 对二维信号 X 进行 N 层分解。idwt2函数格式为=idwt2(cA,cH,cV,cD,wname);它的含义为由信号小波分解的近似信号 cA 和细节信号 cH、cV、cD 经小波反变换重构原信号 X。upcoef2函数格式为X= upcoef2(O,X,wname,N,S);其中O对应分解信号的类型,即:ahvd,X为原图像的矩阵信号,wname为小波

20、基函数,N为一整数,一般取1。wcodemat函数格式为X=wcodemat(x,nb);它表示对矩阵x的量化编码,函数中nb作为x矩阵中绝对值最大的值,一般取192。2.2小波变换程序i=imread(E:图图yw.jpg);x=rgb2gray(i); %真彩色图像转化为灰度图像cA,cH,cV,cD=dwt2(x,db1); %对图像进行单层分解,小波为bd1A=upcoef2(a,cA,db1,1);H=upcoef2(h,cH,db1,1);V=upcoef2(v,cV,db1,1);D=upcoef2(d,cD,db1,1); %图像编码figuresubplot(221);ima

21、ge(wcodemat(A,192);title(近似细节系数);subplot(222);image(wcodemat(H,192);title(水平细节系数);subplot(223);image(wcodemat(V,192);title(垂直细节系数);subplot(224);image(wcodemat(D,192);title(对角细节系数);d=idwt2(cA,cH,cV,cD,db1); %对分解的细节系数执行单层重构,小波为db1imshow(d,);2.3 小波变换结果图2.3 小波变换图3.小波包变换3.1 原理及公式由于正交小波变换只对信号的低频部门做进一步的分析,

22、而对高频部分以及信号的细节部分不再继续分解,所以小波包变换能后很好的表征以低频信息为主要成分的信号,但它不能很好地结合表示包含大量细节信息(细小细节或纹理)的信号,如非平稳机械振动信号、遥感图像、地震信号和生物医学信号灯。与之不同的是,小波包变换可以对高频部分提供更精细的分解,而且这种分解既无冗余,也业务疏漏,所以对包含大量中频、高频信息的信号能后进行更好的时频局部化分析。小波包分解算法:小波包重构:信号小波包分析的基本实现步骤:1)选择适当的小波录波器,对给定的采样信号进行小波包变换,获得树形结构的小波包系数。2)选择信息代价函数,利用最佳小波包基选取算法选取最佳基。3)对最佳正交小波包基对

23、应的小波包系数进行处理。4)对处理后的小波包系数采用小波包重构算法得到重构信号。3.2 小波包变换程序x=imread(E:图图yw.jpg);imshow(x);t=wpdec2(x,2,db1);plot(t); %划出四叉树结构%对分解结构进行重建rective=wprec2(t);subplot(1,2,1),imshow(x),title(原始图像)subplot(1,2,2),imshow(rective),title(重构后的图像);3.3 小波包变换结果图3.3.1 四叉树结构图图3.3.2 小波包变换图4.余弦离散变换4.1原理及公式离散余弦变换,简称DCT,是一种实数域变换

24、,其变换核为实数的余弦函数,计算速度较快,而且对于具有一阶马尔柯夫过程的随机信号,DCT十分接近于Karhunen-Loeve变换,也就是说它是一种最佳变换,很适于做图像压缩和随机信号处理。 对于数字信号X(m,n),0mM,0nN,其二维DCT变换定义为 Y(k,1)= 其中,k=0,1,,M-1;l=0,1,,N-1; 二维DCT变换具有可分离性,可以分解为双重的一维DCT,实现起来非常方便。 二维DCT反变换(IDCT)定义为X(m,n)= 其中,; 。 由上式可知,原始图像X(m,n)可表示为以Y(k,l)为权值的一系列函数 0mM-1,0 ,0nN-1的加权组合,这组函数就是DCT基

25、函数。4.2余弦离散变换程序A=imread(E:图图yw.jpg);I=rgb2gray(A);DCT=dct2(I); %余弦变化DCT(abs(DCT)10)=0; %把变换矩阵中小于10的值置换为0,然后用idct2重构IDCT=idct2(DCT);subplot(2,2,1),imshow(G);title(灰度图像)subplot(2,2,2),imshow(IDCT,0 255);title(压缩图像)subplot(2,2,3),imshow(DCT);title(DCT变换图像)subplot(2,2,4),imshow(log(abs(DCT),);title(二维变换谱

26、);4.3余弦离散变化结果图4.3 余弦离散变换图5 离散沃尔什、二维哈达玛变换5.1 原理及公式5.1.1 离散沃尔什变换离散沃尔什变换和举证中只有+1和-1元素,要求N=,在N=时,定义一维离散沃尔什变换为常数项也可取其中是x的二进制便是第i位如P=3,N=8x=6时二维离散沃尔什变换沃尔什变换本质上将一个函数变换为取值为+1或-1的基向量构成的级数;类似于频率函数,但又不同于频率函数;以过零点数目替代频率的概念,称为序率。5.1.2 哈达玛变换哈达玛变换本质上是一种特殊排序的沃尔什变换;其与沃尔什变换的区别是变换核矩阵行的次序不同;哈达玛变换最大优点在于变换核矩阵具有简单的递推关系,即高

27、阶的变换矩阵可以用低阶转换矩阵构成。一维离散哈达玛变换定义为:其中N=,x,u=0,1,2,N-1说明:在找资料的过程中资料表明哈达玛变换时沃尔什变换的完善,一般情况下只重点讲述了哈达玛在图像变换中的运用,并没有找到沃尔什图像变换的源代码。因此此处只在matlab软件中运行了哈达玛程序。5.2 Walsh-Hadamard变换程序A=imread(E:图图yw.jpg);a=rgb2gray(A); H=hadamard(256); %哈达玛矩阵a=double(a)/255; %数据类型转换ha=H*a*H; %哈达玛变换ha=ha/256;imshow(ha);title(图像的二维离散哈

28、达玛变换);5.3 二维离散哈达玛变换结果图5.36. 小波变换图像压缩6.1 小波变换压缩简介将小波分析映入图像压缩范畴也是一个重要手段,并有着它自己的特点。小波变换压缩特点在于压缩比高、压缩速度快,压缩后能保持信号与图像的特征基本不变,且在传输过程中抗干扰等等。一个图像做小波分解后,可得到一系列不同分辨率的子图像,对应的频率是不相同的。高分辨率子图像上大部分点的数值都接近于0,分辨率越高越明显。而对于一个图像来说,表现图像的最主要的部分是低频部分,所以压缩的方法是利用小波分解去掉图像高频部分二保留低频部分。6.2小波压缩变换程序A=imread(E:图图yw.jpg); %调入图像X=rg

29、b2gray(A);X=double(X)/255; %归一化处理figuresubplot(2,2,1);subimage(X); %显示图像title(原图像)colormap(pink);disp(压缩前图像X的大小);whos(X);C,S=wavedec2(X,2,bior3.7); %对图像用bior3.7小波进行2层小波分解thr=20; %设置小波系数阈值cal=appcoef2(C,S,bior3.7,1); %提取小波分解结构中第1层的低频系数和高频系数ch1=detcoef2(h,C,S,1);cv1=detcoef2(v,C,S,1);cd1=detcoef2(d,C,

30、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;%进行图像压缩处理,保留小波分解第1层低频信息,进行图像的压缩%第1层的低频信息为ca2,显示第1层的低频信息ca1=appcoef2(C,S,bior3.7,1);%首先对第1层信息进行量化编码ca1=wcodemat(ca1,440,mat,0);ca1=0.5*ca1; %改变图像的高度subplot(2,2,2);image(ca1); %显示第1次压缩的图像colormap(pink);title(第一次压缩图像)disp(第一次压缩图像的大小);whos(ca1);%保留小波分解第2层低频信息,进行图像的压缩,此时压缩比更大%第2层的低频信息为ca2,显示第2层的低频信息ca2=appcoef2(C,S,bior3.7,2);%首先对第2层信息进行量化编码ca2=wcodemat(ca2,440,mat,0);%改变

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1