图像处理DCT变换讲解学习

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

图像处理D C T变换

DCT 变换

一、 实验目的:

1.熟悉图像变换的思想;

2.熟悉掌握DCT 变换的处理过程;

3.深入学习和了解DCT 变换的公式以及规律;

4.掌握图像的DCT 变换的Matlab 实现;

5.掌握图像的DCT 变换,求出图像的频谱。

二、实验内容:

练习图像的DCT 变换的Matlab 实现

三、 实验原理:

离散余弦变换是一种实数域变换,其变换核心为实数余弦函数。对一幅图像进行离散余弦变换后,许多有关图像的重要可视信息都集中在DCT 变换的一小部分系数中。因此,离散余弦变换是有损图像压缩JPEG 的核心,同时也是所谓“变换域信息隐藏算法”的主要“变换域(DCT 域)”之一。因为图像处理运用二维离散余弦变换,所以直接介绍二维DCT 变换。

离散余弦变换(DCT )的定义

()()⎥⎦

⎤⎢⎣⎡+⎥⎦⎤⎢⎣⎡+=∑∑-=-=N y v COS N x u y x f N v u F N x N y c 212212cos ),(2),(1010ππ 其逆变换:

()()⎥⎦⎤⎢⎣⎡+⎥⎦⎤⎢⎣⎡+=∑∑-=-=N y v COS N x u y x F N v u f N x N y c 212212cos ),(2),(101

0ππ 离散余弦变换使图像压缩中常用的一个变换编码方法,任何是对称函数的傅里叶变换中只含余弦项,就成为余弦变换,因此余弦变换是傅里叶变换的特

例。余弦变换与傅里叶变换一样有明确的物理意义,是简化傅里叶变换的重要方法。

四、实验步骤:

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,

%dct

rimage=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,

xhimage{x,y}=C;

end,

end,

aa=zeros(8,8);

b1=zeros(256,256);

for x=1:32,

for y=1:32,

aa=xhimage{x,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系数用光谱的形式给出,直观的表明了低频和高频系数的分不规律。

相关文档
最新文档