op.m

来自「一个有关DCT的matlab程序」· M 代码 · 共 51 行

M
51
字号
                                                                                                     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   

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?