[转载]使用Matlab实现离散余弦变换(DCT)
(2011-03-14 11:02:39)
标签:
转载 |
分类: 变换 |
%通过矩阵形式实现离散余弦变换,Y=M*X*N'
%参数:X是二维图像矩阵,Y是变换后的系数矩阵
function Y =
dct21(X)
[m,n] = size(X);
AM =
zeros(m,m);
AN = zeros(n,n);
for i = 0:m-1
end
for i = 0:n-1
end
X =
double(X);
Y =
AM*X*AN';
%%%%%%%%%%%%DCT变换函数完成后,读入图像,然后调用即可
img = imread('marog.bmp');
imgdct =
dct21(img);
imgidct =
dct22(imgdct);
figure (1)
subplot(131);
imshow(img);
title('原始图象')
subplot(132);
%imshow(imgdct,[]);
imshow(uint8(imgdct))
title('DCT变换图象');
subplot(133);
%imshow(imgidct,[]);
imshow(uint8(imgidct));
title('DCT逆变换图象');