DCT变换的MATLAB实现

上传人:人*** 文档编号:490316739 上传时间:2023-12-28 格式:DOCX 页数:7 大小:87.79KB
返回 下载 相关 举报
DCT变换的MATLAB实现_第1页
第1页 / 共7页
DCT变换的MATLAB实现_第2页
第2页 / 共7页
DCT变换的MATLAB实现_第3页
第3页 / 共7页
DCT变换的MATLAB实现_第4页
第4页 / 共7页
DCT变换的MATLAB实现_第5页
第5页 / 共7页
点击查看更多>>
资源描述

《DCT变换的MATLAB实现》由会员分享,可在线阅读,更多相关《DCT变换的MATLAB实现(7页珍藏版)》请在金锄头文库上搜索。

1、图像的离散余弦变换(DCT)【摘 要】信息时代的到来,多媒体技术在飞速的发展。而图像压缩技术也成 为了一个热门的技术。而图像变换是图像压缩中必不可少的步骤,可以提高图像 压缩的效率,而离散余弦变换是性能较好而简单的图像变换,有助于初学者掌握 图像变换的规律和性质,从而更好的掌握图像压缩技术。关键词:图像压缩技术、图像变换、离散余弦变换随着信息社会的发展,图像这种直观的多媒体信息得到越来越多人的喜爱, 无论有没有受过教育,基本都可以接收图像中的信息,所以如何压缩图像也成为 一个热门话题现在的图像压缩技术种类比较多,所使用的图像变换技术也不尽相 同,压缩的效果当然也不相同,由于JPEG具有高效压缩

2、的优势,基于DFT域的 图像压缩算法一直很少被使用,国际上制订了以DCT为核心的静止图像压缩标准 PEG。1本文结构如下:第一部分介绍图像压缩技术的现状,第二部分介绍了 DCT变 换原理;第三部分是MATLAB的实现;第四部分检验程序和对图像变换结果的分 析;第五部位是对DCT变换的总结。1. 图像压缩技术的现状随着现代通信技术、大规模集成电路技术以及图像编码技术的发展,视频通 信得到广泛的应用,视频图像的编码解码标准也逐步完善。国际电信联盟远程通 信标准组织(ITU-T )和国际标准化组织国际电工委员会(ISO/IEC )先后颁布了 一系列有关静止图像和活动图像编码的国际标准,这些标准集成了

3、图像编码40 多年的研究成果,综合了压缩效率、实现复杂度以及便捷性等因素,提出了相对 较优的方案,而JPEG2000这种静止图像标准以及MPEG-x系列和H.26x系列视频 编码标准就是他们的重要成果。2. DCT变换的原理、性质及过程2.1 DCT变换的原理DCT变换利用傅立叶变换的性质。采用图像边界褶翻将像变换为偶函数形式, 然后对图像进行二维傅立叶变换,变换后仅包含余弦项,所以称之为离散余弦变 换。DCT编码属于正交变换编码方式,用于去除图像数据的空间冗余。变换编码就是 将图像光强矩阵(时域信号)变换到系数空间(频域信号)上进行处理的方法。在空 间上具有强相关的信号,反映在频域上是在某些

4、特定的区域内能量常常被集中在 一起,或者是系数矩阵的分布具有某些规律。我们可以利用这些规律在频域上减少量化比特数,达到压缩的目的。图像经DCT变换以后,DCT系数之间的相关性 就会变小。而且大部分能量集中在少数的系数上,因此,DCT变换在图像压缩中 非常有用,是有损图像压缩国际标准JPEG的核心。从原理上讲可以对整幅图像 进行DCT变换,但由于图像各部位上细节的丰富程度不同,这种整体处理的方式 效果不好。为此,发送者首先将输入图像分解为8*8或16*16块,然后再对每个 图像块进行二维DCT变换,接着再对DCT系数进行量化、编码和传输;接收者通 过对量化的DCT系数进行解码,并对每个图像块进行

5、的二维DCT反变换。最后将 操作完成后所有的块拼接起来构成一幅单一的图像。对于一般的图像而言,大多 数DCT系数值都接近于0,所以去掉这些系数不会对重建图像的质量产生较大影 响。因此,利用DCT进行图像压缩确实可以节约大量的存储空间。在实验中,先 将输入的原始图像分为8*8块,然后再对每个块进行二维DCT变换。离散的二维傅里叶变换公式为:1科-IN-1F很町= gid加严5嘟州Z 逆变换:而由傅里叶变换的性质,F(x,y)为偶函数时傅里叶变换公式中的虚部为零,只有余弦项。 维离散余弦变换的公式为:F血屈=c(u)cM 工i=0 J 二 DCOSitcos(j + 0.5)?rVNDCT=逆u=

6、0u=0ItNc其中,逆变换也可以根据傅里叶变换的原理得到,如下:F = AfA7-月一:=月丁/. f =A1F(.Ar)1 =2.2DCT变换的性质2.2.1去相关性由于像素间存在空间冗余,通过图像将图像变为互不相关的系数,然后可以对互不相关的 系数进行编码2.2.2能量紧缩性观察图像的频谱图可以发现,越往高频的地方,能量就越小。2.2.3可分离性:2 MN - 1F ( u , v ) = C ( u ) C ( v yf ( x , y ) cosMNx = 0 y = 01cos(2 x + 1)u ncos(2 y + 1) v nC (u ) C ( v )MNME(2 x +

7、i)u ny = 011f ( x , y )cos(2 y + 1 ) v n2Ml=c ( U )2MNx = 0C()_ 1=C ( u )cosMx = 0x = 01(2 x + 1)u n 小cosCF (x,v )(2 x + 1)v ny = 0f ( x , y )cos(2 y + 1) v n上面公式告诉我们,如果想求f(x,y)离散余弦变换,可以先求每一行的离散余弦变换得到 F(x,v),然后再对每一列进行一维离散余弦变换得到F(u,v),这就是可分离性。32.3 DCT变换过程2.1 DCT编码DCT编码属于正交变换编码。这类算法通常是将空间域上的图像经过正交变换映射

8、到系 数空间,使变换后的系数直接相关性降低。图像变换本身并不能压缩数据,但变换后图像大 部分能量集中到了少数几个变换系数上,再采用适当的量化和熵编码便可以有效地压缩图 像。信息论的研究表明,正交变换不改变信源的熵值,变换前后图像的信息量并无损失,完全 可以通过反变换得到原来的图像值。但图像经过正交变换后,把原来分散在原空间的图像数 据在新的坐标空间中得到集中,对于大多数图像而言,大量的变换系数很小,只要删除接近 于0的系数,并对较小的系数进行粗量化,而保留包含图像主要信息的系数,以此进行压 缩编码。在重建图像进行解码(逆变换)时,所损失的将是些不重要的信息,几乎不会引起 图像失真,图像的变换编

9、码就是利用这些来压缩图像并得到很高的压缩比。由于图像可看成二维数据矩阵,所以在图像编码中多采用二维正交变换方式,然而其正交变 换的计算量太大,所以在实用中变换编码并不是对整幅图像进行变换和编码,而是将图像分 成若干个nxn的子图像分别处理。这是因为小块图像的变换计算比较容易,而且距离较远 的像素之间的相关性比距离较近的像素之间的相关性要小。2.2 DCT解码在解码过程中,形成压缩后的图像格式,先对已编码的量子化的DCT系数进行解码,然后求逆量化并把DCT系数转化为8X8样本像块(使用二维DCT反变换),最后将操作完 成后的块组合成一个单一的图像。这样就完成了图像的解压过程3. MATLAB的介

10、绍以及所需函数的说明:3.1 MATLABMATLAB是matrix&laboratory两个词的组合,意为矩阵工厂(矩阵实验室)。是由美国 mathworks公司发布的主要面对科学计算、可视化以及交互式程序设计的高科技计算环境。 它将数值分析、矩阵计算、科学数据可视化以及非线性动态系统的建模和仿真等诸多强大功 能集成在一个易于使用的视窗环境中,为科学研究、工程设计以及必须进行有效数值计算的 众多科学领域提供了一种全面的解决方案,并在很大程度上摆脱了传统非交互式程序设计语 言(如C、Fortran)的编辑模式,代表了当今国际科学计算软件的先进水平。3.2使用的MATLAB函数介绍lmread(

11、):用于读取图片文件中的数据figure():控制画图的窗口 imshow():显示图像rgb2gray();把真彩图像转变为灰度图像dct2();DCT 变换Colormap();可以拖动上面的颜色块控制条改变位图颜色(双击)。一般是函数image()画出 的连续的灰度图使用。Colorbar:colormap实际上是一个mx3的矩阵,每一行的3个值都为0-1之间数,分别代表 颜色组成的rgb值idct2():DCT 逆变换Subplot():将当前窗口分割成多个子窗口,第一个参数表示分割窗口的行数,第二参数表示 分割后窗口的列数,第三个参数表示第几个子窗口4. MATLAB程序以及结果分析

12、4.1 MATLAB 程序mypicture=imread(1.jpg);%读入测试图像 figure(),imshow(mypicture),title(原输入图像);% 显示读入的图像%为了防止后一个显示的图像覆盖前一个显示结果,每次显示时调用figure生成一个新窗口 graylmage=rgb2gray(mypicture);%如果读入的是彩色图像则转化为灰度图像(灰度图像省 略这一步)figure(),imshow(graylmage),title(原输入彩色图像转化为灰度图像);%对图像DCT变换dctgraylmage=dct2(graylmage);figure();imsho

13、w(log(abs(dctgraylmage),);,title(DCT 变换灰度图像); colormap(gray(4);colorbar;%对灰度矩阵进行量化dctgraylmage(abs(dctgraylmage)vO.1)=O;%DCT逆变换l=idct2(dctgraylmage)/255;figure();imshow(l),title(经过DCT变换,然后逆变换的灰度图像);%对比变换傅里叶变换前后的图像figure(),subplot(121),imshow(graylmage),title(原灰度图像),subplot(122),imshow(l),title(DCT 逆

14、变换图像),4.2结果分析:1原图像:2灰度图像:I口网3DCT变换图像:4DCT逆变换图像:5变换前后图像对比:原抚度圉濛口匕干:逆变撫冏像结果分析:对原始图像进行离散余弦变换,如图3所示,由结果可知,变换后DCT系数能 量主要集中在左上角,其余大部分系数接近于零,这说明DCT具有适用于图像压缩的特性。 将变换后的DCT系数进行门限操作,将小于一定值得系数归零,这就是图像压缩中的量化 过程,然后进行逆DCT运算,得到压缩后的图像,如图4。由图5比较变换前后的图像, 肉眼很难分辨出有什么区别,可见压缩的效果比较理想。五总结与展望;DCT变换的优势是简单,快捷。但是,仿真结果说明当图像压缩比增大时,压缩效率减小, 图像质量降低。但是,当压缩比较高时,这种块的独立处理带来了压缩效率上的限制和方块 效应问题,方块效应成为限制DCT编码质量的主要因素。所以,近年来,小波变换作为新 兴的数学分支正成为图像压缩领域的前沿技术。基于小波的编码有效改进高压缩比的画面质 量,新一代的静止图像压缩标准JPEG2000就以小波变换为核心算法。参考文献:张雅琪,才华.基于DFT、DCT和小波变换图像压缩与Matlab实现j.电脑知识与技术,2013 (21)王新年,张松涛数字图像压缩技术实用教程M.机械工业出版社,2009.8

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 机械/制造/汽车 > 综合/其它

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号