




版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、基于matlab的数字图像图像压缩与编码含matlab源程序摘要IAbstractII.傅里叶变化及反变化1 TOC o 1-5 h z 原理及计算公式1傅里叶变换与反变换程序2傅里叶变换及反变换结果2.小波变换4原理及公式4原理简介4DWT对目标图片的处理及相关函数介绍4小波变换程序5小波变换结果6.小波包变换7原理及公式7小波包变换程序7小波包变换结果8.余弦离散变换10原理及公式10余弦离散变换程序10余弦离散变化结果11离散沃尔什、二维哈达玛变换12原理及公式12离散沃尔什变换12哈达玛变换12Walsh-Hadamar变换程序13二维离散哈达玛变换结果13.小波变换图像压缩14小波变
2、换压缩简介14小波压缩变换程序14小波压缩结果16压缩前后图像比较17.离散余弦变换图像压缩18原理简介18离散余弦变换图像压缩程序18离散余弦变换图像压缩结果19压缩图与原图比照20.实验心得21.参考文献21摘要MATLAB是由美国mathworks公司发布的主要面对科学计算、可视化以及交互式程序设计的高科技计算环境。它将数值分析、矩阵计算、科学数据可视化以及非线性动态系统的建模和仿真等诸多强大功能集成在一个易于使用的视窗环境中,为科学研究、工程设计以及必须进展有效数值计算的众多科学领域提供了一种全面的解决方案,并在很大程度上摆脱了传统非交互式程序设计语言如C、Fortran的编辑模式,代
3、表了当今国际科学计算软件的先进水平MATLAB在数学类科技应用软件中在数值计算方面首屈一指。MATLAB可以进展矩阵运算、绘制函数和数据、实现算法、创立用户界面、连接其他编程语言的程序等,主要应用于工程计算、控制设计、信号处理与通讯、图像处理、信号检测、金融建模设计与分析等领域。MATLAB的根本数据单位是矩阵,它的指令表达式与数学、工程中常用的形式十分相似,故用MATLAB来解算问题要比用C,FORTRAN等语言完成一样的事情简捷得多,并且mathwork也吸收了像Maple等软件的优点,使MATLAB成为一个强大的数学软件。在新的版本中也参加了对C,FORTRAN,C+,JAVA的支持。可
4、以直接调用用户也可以将自己编写的实用程序导入到MATLAB函数库中方便自己以后调用,此外许多的MATLAB爱好者都编写了一些经典的程序,用户可以直接进展下载就可以用。本次课程设计那么是基于MATLAB图像变换及压缩编码,着重训练matlab在图像处理方面的应用,能够运用相关软件进展模拟分析。通过对采集的图像进展读入图像并对图像进展傅利叶变换、小波变换、小波包变换、离散余弦变换、离散沃尔什变换,二维哈达玛变换。并分别采用小波变换和离散余弦变换对图像进展压缩,并与原图像进展比较。从而到达对matlab软件的熟悉和程序的书写。关键字:matlab图像变换压缩编码AbstractMATLABisaU.
5、S.companysmainfacemathworksscientificcomputing,visualizationandhigh-techinteractivecomputingenvironmentprogramming.Itnumericalanalysis,matrixcomputation,scientificdatavisualizationandnonlineardynamicsystemsmodelingandsimulation,andmanyotherpowerfulfeaturesinaneasytouseintegratedWindowsenvironmentfor
6、scientificresearch,engineeringdesignandtheneedforeffectivenumericalcalculationmanyfieldsofscienceprovidesacomprehensivesolution,andlargelyoutofthetraditionalnon-interactiveprogramminglanguage(suchasC,Fortran)oftheeditmode,onbehalfofthecurrentinternationaladvancedlevelofscientificcomputingsoftwareMAT
7、LABapplicationoftechnologyinmathematicsclassesinnumericalcomputingsoftware,secondtonone.MATLABmatrixoperationscanbecarriedout,drawingfunctionsanddata,algorithm,createuserinterfaces,connectingtheproceduresofotherprogramminglanguages,mainlyusedinengineeringcalculations,controldesign,signalprocessingan
8、dcommunications,imageprocessing,signaldetection,financialmodelingdesignandanalysisandotherfields.MATLABsbasicdataunitisthematrix,itsexpressionandmathematicsinstruction,engineeringisverysimilartotheformcommonlyused,itiscalculatedusingMATLABtosolvetheproblemthanusingC,FORTRANandotherlanguagesaccomplis
9、hthesamethingmuchmoresimpleandmathworkalsoabsorbedtheadvantagesofsoftwaresuchasMaple,MATLABmakesapowerfulmathematicalsoftware.InthenewversionalsoaddssupportforC,FORTRAN,C,JAVAsupport.Canbecalleddirectly,theusercanalsowritetheirownutilityfunctionlibraryintoMATLABtofacilitatetheirfuturecalling,inaddit
10、iontomanyfanshavewrittenanumberofMATLABclassicprocedure,theusercandownloaddirectlyyoucanuse.ThecoursedesignisbasedontheMATLABimagetransformationandcompression,focusingontrainingmatlabinimageprocessingapplications,canbeanalyzedusingsimulationsoftware.ImagescollectedbytheimageandtheimagereadintotheFou
11、riertransform,wavelettransform,waveletpackettransform,discretecosinetransform,discreteWalshtransform,twoWeihadammartransformation.Theapproachofusingwavelettransformanddiscretecosinetransform,imagecompression,comparedwiththeoriginalimage.Matlabsoftwaretoachievethefamiliarandthewritingprocess.Keywords
12、:matlabimagetransformcoding.傅里叶变化及反变化原理及计算公式Matlab函数fft、fft2和fftn分别可以实现一维、二维和N维DFT算法;而函数ifft、ifft2和ifftn那么用来计算反DFT。这些函数的调用格式如下:A=fft(X,N,DIM)其中,X表示输入图像;N表示采样间隔点,如果X小于该数值,那么Matlab将会对X进展零填充,否那么将进展截取,使之长度为N;DIM表示要进展离散傅立叶变换。A=fft2(X,MROWS,NCOLS)其中,MROWS和NCOLS指定对X进展零填充后的X大小。A=fftn(X,SIZE)其中,SIZE是一个向量,它们每
13、一个元素都将指定X相应维进展零填充后的长度。一个图象尺寸为MXN的离散函数f(x,y)的离散傅立叶变化如下:1.1F(u,v)MN x 0 y 0j 2 (ux / M vy / N) f(x,y)ef(x,y)可以通过对F(u,v)求傅立叶逆变化获得,其表达式如下:1.2M1N1j2(ux/Mvy/N)f(x,y)F(u,v)eu0v0式中,x0,12,M1,y0,12小1。式1.1和式1.2构成了二维离散傅立叶变化对。变量u和v是频率变量,x和y是空间变量。常量1/MN的位置并不重要,可以将它放在逆变化之前,还可以将常量分为两个相等的常数1/,而,分别乘在正变化和逆变化式前。在实际工程应用
14、中分析幅度谱较多,习惯上也常把幅度谱称为频谱。二维离散傅立叶变化DFT有着较强的物理意义,所以在信号分析与处理领域占有重要的地位。DFT变化进展图象处理时有如下一些特点:1直流成分为F叽2幅度谱忙(u,v)对称于原点。3图象“入丫)平移后,幅度谱不发生变化,仅有相位发生了变化傅里叶变换与反变换程序图图yw.jpg);I=rgb2gray(A);C=fft2(double);对图像进展傅立叶变换B=fftshift(fft2(double(I);%将直流分量移到频谱图的中心D=ifft2(B);%傅立叶反变换figure;%画图像原始图imshow(I);title(原图);figure;ims
15、how(log(abs(B)+1),);title(直接变换频谱图);figure;%画直接变换频谱图imshow(abs(D),);title(反傅里叶变换图);傅里叶变换及反变换结果原图直接变换频谱图反傅里叶变换国图1.3傅里叶及反傅里叶变化图.小波变换原理及公式原理简介信号分析是为了获得时间和频率之间的相互关系。小波变换DWT是现代谱分析工具,他既能考察局部时域过程的频域特征,又能考察局部频域过程的时域特征,因此即使对于非平稳过程,处理起来也得心应手。傅立叶变换提供了有关频率域的信息,但有关时间的局部化信息却根本丧失。与傅立叶变换不同,小波变换能将图像变换为一系列小波系数,这些系数可以被
16、高效压缩和存储,此外,小波的粗略边缘可以更好地表现图像,因为他消除了DCT压缩普遍具有的方块效应。通过缩放母小波Motherwavelet的宽度来获得信号的频率特征,通过平移母小波来获得信号的时间信息。对母小波的缩放和平移操作是为了计算小波系数,这些小波系数反映了小波和局部信号之间的相关程度。DWT对目标图片的处理及相关函数介绍在Matlab中,二维离散小波变化对于图像的处理是通过函数的形式来进展的,主要的处理函数有如下几种:表1常用的DWT函数函数名函数功能dwt2二维离散小波变换wavedec2二维信号的多层小波分解idwt2二维离散小波反变换upcoef2由多层小波分解重构近似分量或细节
17、分量wcodemat对矩阵进展量化编码dwt2函数的应用格式为cA,cH,cV,cD=dwt2(X,wname);其意义为使用指定的小波基函数wname对二维信号X进展二维离散小波变换。cA,cH,cV,cD分别为近似分量、水平细节分量、垂直细节分量和对角细节分量。wavedec2函数的格式为C,S=wavedec2(X,N,wname)其意义为使用小波基函数wname对二维信号X进展N层分解。idwt2函数格式为=idwt2(cA,cH,cV,cD,wname)它的含义为由信号小波 TOC o 1-5 h z 分解的近似信号cA和细节信号cH、cV、cD经小波反变换重构原信号X。upcoef
18、2函数格式为X=upcoef2(O,X,wname,N,S)其中。对应分解信号的类型,即:ahVd,X为原图像的矩阵信号,wnam4为小波基函数,N为一整数,一般取1。wcodemat函数格式为X=wcodemat(x,nb);它表示对矩阵x的量化编码,函数中nb作为x矩阵中绝对值最大的值,一般取192。小波变换程序图图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,
19、1);D=upcoef2(d,cD,db1,1);%图像编码figuresubplot(221);image(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小波变换结果图
20、2.3小波变换图.小波包变换原理及公式由于正交小波变换只对信号的低频部门做进一步的分析,而对高频局部以及信号的细节局部不再继续分解,所以小波包变换能后很好的表征以低频信息为主要成分的信号,但它不能很好地结合表示包含大量细节信息细小细节或纹理的信号,如非平稳机械振动信号、遥感图像、地震信号和生物医学信号灯。与之不同的是,小波包变换可以对高频局部提供更精细的分解,而且这种分解既无冗余,也业务疏漏,所以对包含大量中频、高频信息的信号能后进展更好的时频局部化分析。小波包分解算法:nkhl2kdjn1llzdj2n1kgi2kdjn1liz小波包重构:dnj1khk_2ldj2nlgk2ldj2n1ll
21、zlz信号小波包分析的根本实现步骤:1选择适当的小波录波器,对给定的采样信号进展小波包变换,获得树形构造的小波包系数。2选择信息代价函数,利用最正确小波包基选取算法选取最正确基。3对最正确正交小波包基对应的小波包系数进展处理。4对处理后的小波包系数采用小波包重构算法得到重构信号。小波包变换程序图图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),titlej
22、t构后的图像);小波包变换结果图3.3.1四叉树构造图图3.3.2小波包变换图4余弦离散变换原理及公式离散余弦变换,简称DCT,是一种实数域变换,其变换核为实数的余弦函数,计算速度较快,而且对于具有一阶马尔柯夫过程的随机信号,DCT十分接近于Karhunen-Loeve变换,也就是说它是一种最正确变换,很适于做图像压缩和随机信号处理。对于数字信号Xm,n,0mM,0nN,其二维DCT变换定义为k,1=M 1N 1m 0 n 0X m,n cos(2m 1)k2Mcos(2n 1)l2N其中,k=0,1,,M-1; l=0,1,N-11/M, k 01/Jn,I 0 , l :2/M ,1 k
23、M 12/N ,1 l N 1二维DCT变换具有可别离性,可以分解为双重的一维DCT,实现起来非常方便。二维DCT反变换IDCT定义为M 1N 1Xm,n= k l X k,1 k 0 l 0 其中,1人而,k 0 * k:).2/M ,1 k M 1由上式可知,原始图像cosmAcos12M2N1/ . N ,l 0l : 02 / N ,1 l N 1Xm,n可表示为以Yk,l为权值的一系列函数M 1N 1k l X k,1 cosk 0 l 0(2mcosW2M2N0mM-1,0,0nN-1的加权组合,这组函数就是DCT基函数。余弦离散变换程序图图yw.jpg);I=rgb2gray(A
24、);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,0255);title一缩图像)subplot(2,2,3),imshow(DCT);title(DC饺换图像)subplot(2,2,4),imshow(log(abs(DCT),);title(维变换谱);4.3余弦离散变化结果图4.3余弦离散变换图5离散沃尔什、二维哈达玛变换原理及公式离散沃尔什变换离散沃尔
25、什变换和举证中只有+1和-1元素,要求N=2p,在N= 2p时,定义一维离散沃尔什变换为N 1 p 1bl x bp 1 i uW u f x 1N x 0 i 0常数项也可取1N其中bi x是X的二进制便是第i位如 P=3,N= 2p=8 x=6 时b0 60,b1 61,b2 61二维离散沃尔什变换W u,vN 1N 1p 11b x bp 1i u b y bp 1i v2 f x, y 1N2 x0y0i 011 N 1p1f x, yN N x 0i 0bi x bp 1 i ubi y bp 1 i v1GfG沃尔什变换本质上将一个函数变换为取值为 +1或-1的基向量构成的级 数;
26、类似于频率函数,但又不同于频率函数;以过零点数目替代频率的概 念,称为序率。5.1.2哈达玛变换哈达玛变换本质上是一种特殊排序的沃尔什变换;其与沃尔什变换的 区别是变换核矩阵行的次序不同;哈达玛变换最大优点在于变换核矩阵具有简单的递推关系,即高阶的变换矩阵可以用低阶转换矩阵构成一维离散哈达玛变换定义为:/ N 1Hu fN x 0其中N= 2p,/bi x bi u1 i 0 x,u=0,1,2;-,N-1说明:在找资料的过程中资料说明哈达玛变换时沃尔什变换的完善,一般情况下只重点讲述了哈达玛在图像变换中的运用,并没有找到沃尔什图像变换的源代码。因此此处只在matlab软件中运行了哈达玛程序。
27、5.2Walsh-Hadamar变换程序图图yw.jpg);a=rgb2gray(A);H=hadamard(256);%哈达玛矩阵a=double(a)/255;%数据类型转换ha=H*a*H;%哈达玛变换ha=ha/256;imshow(ha);title(图像的二维离散哈达玛变换);5.3二维离散哈达玛变换结果6.小波变换图像压缩小波变换压缩简介将小波分析映入图像压缩范畴也是一个重要手段,并有着它自己的特点。小波变换压缩特点在于压缩比高、压缩速度快,压缩后能保持信号与图像的特征根本不变,且在传输过程中抗干扰等等。一个图像做小波分解后,可得到一系列不同分辨率的子图像,对应的频率是不一样的。
28、高分辨率子图像上大局部点的数值都接近于0,分辨率越高越明显。而对于一个图像来说,表现图像的最主要的局部是低频局部,所以压缩的方法是利用小波分解去掉图像高频局部二保存低频局部。小波压缩变换程序图图yw.jpg);%调入图像X=rgb2gray(A);X=double(X)/255;%归一化处理figuresubplot(2,2,1);subimage(X);%显示图像title(原图像)colormap(pink);disp(压缩前图像X的大小);whos(X);C,S=wavedec2(X,2,bior37);%对图像用bior37小波进展2层小波分解thr=20;%设置小波系数阈值cal=a
29、ppcoef2(C,S,bior3.7,1);%提取小波分解构造中第1层的低频系数和高频系数ch1=detcoef2(h,C,S,1);cv1=detcoef2(v,C,S,1);cd1=detcoef2(d,C,S,1);a1=wrcoef2(a,C,S,bior37,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层的
30、低频信息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
31、,440,mat,0);%改变图像的高度ca2=0.5*ca2;%显示第二次压缩图像subplot(2,2,3);image(ca2);colormap(pink);title(第二次压缩图像)disp(第二次压缩图像的大小);whos(ca2);6.3小波压缩结果图6.3.2小波压缩图像压缩前圉像K的大小NameSrseBytesClassK2661:266524288doublearrayGrandtotalis65536elementsusin:5242S8bytes第一次压缩图像的大小NameBytesClass;cal135x135145800doublearraySrandtota
32、lis18225elem&ntsusing145800bytes第二次压缩图像的大小NajuSiseBy+&sClassca275x75450口口doublearrayjrandtotalis5625elemerrtsusing45000bytes图6.3.2压缩图像规格6.4压缩前后图像比较可看出原图分辨率为256*256,而压缩一次后图像分辨率为135*135,二次压缩后图像分辨率为75*75。第一次压缩是我们对原始图像中小波分解第一层低频信息,此时压缩效果好,压缩比较小。第二次压缩时提取第一层分解低频局部的低频局部,其压缩比较大。.离散余弦变换图像压缩原理简介任何连续的事物堆成函数的傅里
33、叶变换中只含有余弦项,因此余弦变换与傅里叶变换一样,有明确的物理意义。DCT实现将整体图像分成N*N像素块,然后对N*N像素块逐一进展DCT变换。由于大多数的图像的高频分量较小,相应于高频成分的系数经常为零,加上人眼对高频成分的失真不太敏感,所以可以用更粗的量化。因此传送变换系数所用的数码率要大大小于传送图像像素所用的数码率。到达接收端后再通过反离散余弦变换回到样值,虽然会有一定的失真,但是能根本承受。N代表像素数,一般N=8,8*8的二位数据块经DCT后变成8*8个变换系数,这些系数都有着明确的物理意义:U代表水平像素号,V代表处置像素号。随着U、V值增大,相应的系数分别代表逐步压缩的水平空
34、间频率分量和垂直空间频率分量的大小。在JPEG图像压缩算法里,输入图像被分为8*8小块,然后对每一小块进展二位DCT变换,变换后的系数量化、编码并传输,JPEG格式文件解码量化了的DCT系数,对每一块计算二位逆DCT变换,最后把结果块拼接成一个完整的图像。在DCT变换后舍弃那些不严重影响图像重构接近0的系数。离散余弦变换图像压缩程序图图yw.jpg);I=rgb2gray(A);I=im2double(I);%图像存储类型转换T=dctmtx(8);%离散余弦变换矩阵B=blkproc(I,88,P1*x*P2,T,T);%对原图像进展DCT变换mask=1111000011100000110000001000000000000000000000000000000000000000;B2=blkproc(B,88,P1.*x,mask);%数据
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 七级考试题及答案
- 石油化工行业典型事故案例
- 文档超强英语四六级课件
- 2025年稀土高速工具钢项目建议书
- 现代外卖配送骑手职业素养与责任承诺合同
- 美容美发行业人才招聘与培训服务合同
- 网络零售智能电子价签租赁及售后服务协议
- 顶级商业街区十年租赁期物业全面管理合同
- 胎黄中医护理
- 抖音火花话题挑战赛选手赛事保障与支持协议
- 2025年铁路集装箱市场前景分析
- 2024-2025中国商旅管理白皮书
- 船舶维修合同协议书
- 《比亚迪品牌历史课件》课件
- 小学心理健康家长会课件
- 2025年4月自考00160审计学答案含评分参考
- 购买木地板合同协议
- 严重开放性肢体创伤早期救治专家共识解读
- 2025年公共安全管理考试试题及答案
- 速卖通开店考试最权威答案
- 输液导管相关静脉血栓形成中国专家共识 课件
评论
0/150
提交评论