离散余弦变换matlab

一直对DCT变换感兴趣,matlab的帮助里查了很多遍,每次想用的时候,生怕理解不全面,使用错了,就先查一遍再使用。

T=dctmtx(N)产生DCT变换矩阵,如果进行二维变换,B=T*A*T',逆变换为A=T'*B*T;

话说二维DCT变换使得能量集中在左上角,它是先进行列变换,再进行行变换;

效果和使用dct2()函数相同,当对多个图像块进行变换时,使用T*A*T'这种方式会更快一些;

当对维数较大的数据块进行处理时,使用dct2()会更快一些。

 

    3.5 说明二维余弦正反变换在Matlab中的实现。

RGB=imread('autumn.tif');
I=rgb2gray(RGB);
figure(1);
imshow(I);
figure(2);
J=dct2(I);
imshow(log(abs(J)),[]);
colormap(jet(64)),colorbar;
figure(3);
J(abs(J)<10)=0;
K=idct2 (J)
离散余弦变换matlab_第1张图片/255;

imshow(K);

离散余弦变换matlab_第2张图片

离散余弦变换matlab_第3张图片

离散余弦变换matlab_第4张图片

离散余弦变换matlab_第5张图片

你可能感兴趣的:(离散余弦变换matlab)