数字图像处理DCT变换课程设计

上传人:ni****g 文档编号:459727110 上传时间:2023-09-04 格式:DOC 页数:13 大小:390.99KB
返回 下载 相关 举报
数字图像处理DCT变换课程设计_第1页
第1页 / 共13页
数字图像处理DCT变换课程设计_第2页
第2页 / 共13页
数字图像处理DCT变换课程设计_第3页
第3页 / 共13页
数字图像处理DCT变换课程设计_第4页
第4页 / 共13页
数字图像处理DCT变换课程设计_第5页
第5页 / 共13页
点击查看更多>>
资源描述

《数字图像处理DCT变换课程设计》由会员分享,可在线阅读,更多相关《数字图像处理DCT变换课程设计(13页珍藏版)》请在金锄头文库上搜索。

1、沈阳理工大学数字图像课程设计 目 录第1章 相关知识11.1 DCT变换在数字图像应用11.2 数字图像处理的主要方法21.3 DCT在MATLAB的实现2第2章 课程设计分析32.1 DCT 的基本原理3第3章 程序6第4章 仿真结果74.1压缩前后图像对比74.2 DCT变换三维投影8第5章 结果分析9结论12参考文献13第1章 相关知识1.1 DCT变换在数字图像应用 在JPEG各类图像压缩算法中,基于离散余弦变换(DCT ,Discrete Cosine Transform) 的图像压缩编码过程称为基本顺序过程,它应用于绝大多数图像压缩场合, 并且它能在图像的压缩操作中获得较高的压缩比

2、。另外,重构图像与源图像的视觉效果基本相同。DCT变换是在最小均方误差条件下得出的最佳正交变换,且已获得广泛应用, 并成为许多图像编码国际标准的核心。DCT变换的变换核心为余弦函数,计算速度较快, 有利于图像压缩和其他处理。 MATLAB是由美国Math2Works公司推出的用于数值计算和图形处理的科学计算软件, 它集数值分析、矩阵计算、信号处理和图形显示多种功能于一体,构成了一个方便的界面,友好的用户环境。本文主要应用MATLAB6.5中发布的影像处理工具箱中的相关函数和命令来实现基于DCT的图像压缩编码理论算法的仿真。1.2 数字图像处理的主要方法空域法和变换域法。a. 空域法 把图像看作

3、是平面中各个象素组成的集合,然后直接对这个二维函数进行相应的处理。 b. 频域法(变换域法) 首先对图像进行正交变换,得到变换域系数阵列,然后再实行各种处理,处理后再反变换到空间域,得到处理结果。这类处理包括:滤波、数据压缩和特征提取等。1.3 DCT在MATLAB的实现第一种方法是使用函数dct2,该函数使用一个基于FFT的快速算法来提高当输入较大的输入方阵时的计算速度。dct2函数的调用格式如下: dct2 B=(A,M N)或B=dct2(A,M,N)其中,A表示要变换的图像,M和N是可选参数,表示填充后的图像矩阵大小。B表示变换后得到的图像矩阵。 第二种方法使用由函数dctmtx返回的

4、DCT变换矩阵,这种方法较适合于较小的输入方阵(如或方阵)。dctmtx的调用格式如下:D=dctmtx(N)其中,N表示DCT变换矩阵的维数,D为DCT变换矩阵。 第2章 课程设计分析2.1 DCT 的基本原理DCT 变换在图像压缩中有很多应用,它是JPEG,MPEG 等数据压缩标准的重要数学基础。在压缩算法中,先将输入图像划分为 88 或 1616,的图像块,对每个图像块作DCT 变换;然后舍弃高频的系数,并对余下的系数进行量化以进一步减少数据量;最后使用无失真编码来完成压缩任务。解压缩时首先对每个图像块做 DCT 反变换,然后将图像拼接成一副完整的图像。DCT 的定义 : DCT 变换利

5、用傅立叶变换的性质,采用图像边界褶翻将图像变换为偶函数形式,然后对图像进行二维傅立叶变换,变换后仅包含余弦项,所以称之为离散余弦变换。 二维离散余弦变换DCT(Discrete Cosine Transform)的定义为,假设矩阵A 的大小为M N。 其中, , 称为矩阵A 的DCT 系数。在MATLAB 中,矩阵的下标从1 开始而不是从0 开始的,所以MATLAB 中的矩阵元素A(1,1)和B(1,1)分别对应于上面定义中的值和 ,依此类推。 DCT 是一种可逆变换,离散反余弦变换定义如下: 上式的含义是任何MN 的矩阵A 都可以表示为一系列具有下面形式的函数的和: 这些函数称为 DCT 变

6、换的基函数。这样, , 就可以看成是应用于每个基函数的加权。DCT 的算法 :离散余弦变换可以由定义式出发进行计算。但这样的计算量太大,在实际应用中很不方便。所以需要寻求一种快速算法。以一维离散余弦变换为列,对快速算法进行推导。 对时域数据向量做如下列延拓: 当x=0,1,2,.N-1 fe(x) =f(x) 当x=N,N+1,.2N-1时 fe(x)=0 则fe(x)的离散余弦变换可写成下列: = = 由上式可见:是2N点的;离散傅里叶变换所以在离散余弦变换时,可以吧序列长度延拓为2N,然后作离散傅里叶变换,产生的结果取其实部即可得到余弦变换。 同理对于离散余弦变换IDCT,可首先在变换空间

7、将F(u)作如下延拓:当u=0,1,2,3,.N-1时 Fe(u)=F(u)当u=N,N+1,N+2,.,2N-1时 Fe(u)=0那么,反变换可表示: = = 由上式可见,IDCT可以由的2N点的IDFT的快速算法实现。在计算二维的DCT变换时,可使用下面的计算公式把二维的DCT变换变成一维的DCT: 该方法的出发点是分别对分解后的每个数据小方块进行DCT变换,主要应用 MATLAB 的影像处理工具箱中dctmtx 函数返回DCT 变换矩阵,而后进行相关处理的程序实现 第3章 程序用 MATLAB 的影像处理工具箱中dctmtx 函数编写基于DCT的变换的图像压缩: %出发点是采用分别对分解

8、后的每个数据小方块进行DCT变换 I=imread(plane1.gif); %装入原始图像,该图片在安装matlab的目录中找,原图为灰度图像 I1=im2double(I);%图像存储类型转换,将图像变换成双精度格式 T=dctmtx(8);%离散余弦变换矩阵,处理后返回一个8 8 阶DCT 变换矩阵 B=blkproc(I1,8,8,P1*x*P2,T,T); %对原图像进行DCT变换,每个不同8 8 块应用矩阵式P1*x *P2进行处理,必要时补0 ,其中P1 = T ,P2 = Tmask= 1 1 1 1 0 0 0 0 1 1 1 0 0 0 0 0 1 1 0 0 0 0 0

9、0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0;%二值掩模,用来压缩DCT 的系数,选取10 个DCT 系数重构图像 B2=blkproc(B,8,8,P1.*x,mask);%只保留DCT 变换的10个系数,数据压缩,丢弃右下角高频数据 I2=blkproc(B2,8,8,P1*x*P2,T,T);%进行DCT反变换,得到压缩后的图像 subplot(2,2,1) imshow(I1) title(plane1.gif)subplot(2,2,2) imshow(I2) tit

10、le(压缩后的图像);%显示原始图像I1和压缩图像I2 第4章 仿真结果4.1压缩前后图像对比4.1.1 原图像 图4-14.1.2 压缩后的图像 图4-24.2 DCT变换三维投影4.2.1 未经DCT变换前的三维投影 图4-34.2.2经DCT变换后的三维投影 图4-4第5章 结果分析 图5-1 当p,q不断增大时,相应的余弦函数的频率也不断增大,得到的系数可认为就是原始图像信号在频率不断增大的余弦函数上的投影,所以也被称为低频系数、中频系数和高频系数。依上图可以明显的发现如下规律:大体上,沿左上到右下的方向DCT系数(绝对值)是依次递减的。所以,也就是说一个图像的DCT低频系数分布在DC

11、T系数矩阵的左上角,高频系数分布在右下角,低频系数的绝对值大与高频系数的绝对值。 对DCT变换来说,图像的主要能量是集中在其DCT系数的一小部分。这所谓的“一小部分”就是指的低频部分。随着p,q阶数的不断增大,图像信号在两组正交函数上的投影值出现了大量的正负相抵消的情景,从而导致了得到的频率系数在数值(绝对值)上的不断减小。当p=0,q=0,得到的频率系数与余弦函数无关(cos0=1),完全就是图像抽样信号的均值,也是最大的一个值,称为DCT变换的直流(DC)系数,其它的频率系数都由余弦函数参与得到,所以被称为交流(AC)系数。中、低频系数所含有的原始信号的成份较多,所以由其反变换重构图像就能得到图像的近似部分。高频系数是在众多正交的余弦函数上投影的加权,是这些不同频率的余弦信号一起来刻画原始信号的结果,图像近似的部分在这些函数上被相互抵消了,剩下的就是图像的细节部分了。 图5-2对图像进行分块DCT后,在每一个88范围内其频率系数仍然符合DCT系数分布规律。 仿真中取了10 个DCT 系数,占15 %比较原图和重构图像,可以发现:在抛弃85 %的 DCT 系数后,重构图像时并不会因此而带来其画面质量的显著下降,即重构图像的失真不大. 当然,采用这种方法来实现压缩算法时,可以通过修改mask 变量中的DCT 系数来更好地比较仿真结果。结论 在整个运用MATLAB影像处

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

当前位置:首页 > 大杂烩/其它

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