实验一 图像DCT变换
一、实验目的
1.了解DCT处理图像的基本知识; 2.掌握用matlab将对图像进行DCT变换。。 二、实验内容
1.对图像进行DCT处理;
2.显示变换后的图像的三维的频谱; 3.对matlab代码进行一定的文字说明;
三、实验原理
离散余弦变换(Discrete Cosine Transform,DCT)是一种实数域变换,其变换核为实数余弦函数。对一幅图像进行离散余弦变换后,许多有关图像的重要可视信息都集中在DCT变换的一小部分系数中。因此,离散余弦变换(DCT)是有损图像压缩JPEG的核心,同时也是所谓“变换域信息隐藏算法”的主要“变换域(DCT域)”之一。因为图像处理运用二维离散余弦变换,所以直接介绍二维DCT变换。
一个矩阵的二维DCT定义如下:
首先将输入图像分解为8*8或16*16块,然后再对每个图像块进行二维DCT变换,接着再对DCT系数进行量化、编码和传输;接收者通过对量化的DCT系数进行解码,并对每个图像块进行的二维DCT反变换。最后将操作完成后所有的块拼接起来构成一幅单一的图像。对于一般的图像而言,大多数DCT系数值都接近于0,所以去掉这些系数不会对重建图像的质量产生较大影响。因此,利用DCT进行图像压缩确实可以节约大量的存储空间。在实验中,先将输入的原始图像分为8*8块,然后再对每个块进行二维DCT变换。MATLAB图像处理上具箱中提供的二维DCT变换及DCT反变换函数如下。
基于DCT的JPEG图像压缩编码理论算法过程框图如下:
上图是基于DCT变换的图像压缩编码的压缩过程,解压缩与上图的过程相反。 四、实验代码及结果
close all;