您的位置:首页 > 编程语言 > MATLAB

离散余弦变换matlab

2016-04-12 11:42 337 查看
一直对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)


/255;
imshow(K);







内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: