资源描述
DCT变换一、 实验目的: 1.熟悉图像变换的思想; 2.熟悉掌握DCT变换的处理过程; 3.深入学习和了解DCT变换的公式以及规律; 4.掌握图像的DCT变换的Matlab实现; 5.掌握图像的DCT变换,求出图像的频谱。二、实验内容:练习图像的DCT变换的Matlab实现三、 实验原理:离散余弦变换是一种实数域变换,其变换核心为实数余弦函数。对一幅图像进行离散余弦变换后,许多有关图像的重要可视信息都集中在DCT变换的一小部分系数中。因此,离散余弦变换是有损图像压缩JPEG的核心,同时也是所谓“变换域信息隐藏算法”的主要“变换域(DCT域)”之一。因为图像处理运用二维离散余弦变换,所以直接介绍二维DCT变换。离散余弦变换(DCT)的定义其逆变换:离散余弦变换使图像压缩中常用的一个变换编码方法,任何是对称函数的傅里叶变换中只含余弦项,就成为余弦变换,因此余弦变换是傅里叶变换的特例。余弦变换与傅里叶变换一样有明确的物理意义,是简化傅里叶变换的重要方法。四、实验步骤:DCT变换的Matlab实现A,map=imread(lenna); %显示原图imshow(A,map), title(原图);image=double(A);N=8;for x=1, a(x)=sqrt(1/N);end,for x=2:8, a(x)=sqrt(2/N);end,%dctrimage=zeros(8,8);for x=1:32, for y=1:32, for u=1:N, for v=1:N, for i=1:N, for j=1:N, rimage(i,j)=image(i+(x-1)*8,j+(y-1)*8); b(i,j)=rimage(i,j).*cos(2*(i-1)+1)*(u-1)*pi/(2*N).*cos(2*(j-1)+1)*(v-1)*pi/(2*N); end, end, d(u,v)=sum(sum(b,1),2); C(u,v)=a(u).*a(v).*d(u,v); end,end,xhimagex,y=C;end,end,aa=zeros(8,8);b1=zeros(256,256);for x=1:32, for y=1:32, aa=xhimagex,y; for i=1:8, for j=1:8, b1(i+(x-1)*8,j+(y-1)*8)=aa(i,j); end, end, end,end,figure,imshow(uint8(b1);title(DCT);五、实验结果:实验频谱图:上图是lenna图像为例,利用DCT变换函数得到的DCT系数的性质,改图显示了变化的结果,其中DCT系数用光谱的形式给出,直观的表明了低频和高频系数的分不规律。2
展开阅读全文