欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

图像的离散余弦变换

程序员文章站 2022-07-14 22:18:42
...

图像的离散余弦变换广泛用于图像的压缩。对原始图像进行离散余弦变换,变换后DCT系数能量主要集中在左上角,其余大部分系数接近于零,DCT具有适用于图像压缩的特性。将变换后的DCT系数进行门限操作,将小于一定值得系数归零,这就是图像压缩中的量化过程,然后进行逆DCT运算,可以得到压缩后的图像。
离散余弦变换的原理:
二维离散余弦变换的正变换公式为:
图像的离散余弦变换
在图像的压缩码中,N一般为8;
逆变换公式为:
图像的离散余弦变换
上式的各项系数分别为:
图像的离散余弦变换
在matlab中对图像进行离散余弦变换,2维离散余弦变换函数为dct2(),逆变换为idct2();

clc;clear;
I=imread('L.png');
I=rgb2gray(I);
D1=dct2(I);
ID1=uint8(idct2(D1));
subplot(1,3,1)
imshow(I);
title('原图')
subplot(1,3,2)
imshow(abs(D1));
title('离散余弦变换的图')
subplot(1,3,3)
imshow(ID1);
title('逆变换后的图')

图像的离散余弦变换
对图像进行压缩,取dct变换后矩阵左上角60X60的一小块矩阵其余置零,然后逆变换。

clc;clear;
I=imread('L.png');
I=rgb2gray(I);
D1=dct2(I);
D2=zeros(size(D1));
D2(1:60,1:60)=D1(1:60,1:60);
ID1=uint8(idct2(D1));
ID2=uint8(idct2(D2));
subplot(2,2,1)
imshow(I);
title('原图')
subplot(2,2,2)
imshow(abs(D1));
title('离散余弦变换的图')
subplot(2,2,3)
imshow(ID1);
title('不压缩逆变换后的图')
subplot(2,2,4)
imshow(ID2);
title('压缩逆变换后的图')

图像的离散余弦变换

相关标签: 图像处理