tic
src =imread('图像名.bmp');
src=double(src);
dest= ones(8);
dest2= ones(8);
final= ones(256);
% 产生 8*8 DCT基矩阵
%----------------------------------------
N=8; %DFT 点数
matrix= zeros(8);
% 基矩阵 产生N * N 的基矩阵
for I= 1: N
matrix(1,I) = 1 / sqrt(N);
end
for m =1:N-1
for k=1:N
matrix(m+1, k) = sqrt(2/N)*cos( m* (2*k-1)* pi/(2*N) );
end
end
%------------------------------------------------------------
%分块 8*8
for y=0:31
for x = 0:31
test =src( (1+y*8):(8 + y*8), (1+x*8):(8 + x*8) );
for I = 1:8
dest(I,:) = matrix * test(I, :)';
end
for I = 1:8
dest2(:, I) = matrix * dest(:,I);
end
final( (1+y*8):(8 + y*8), (1+x*8):(8 + x*8) ) = dest2;
end
end
final = 255*final / max(final(:)); %归一化
imshow(final, [0 255]);
toc