⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 exa080902_dct2.m

📁 几十个用于数字信号处理的Matlab程序
💻 M
字号:
%-------------------------------------------------------------------------
% exa080902_dct2.m, for example 8.9.2 and 8.7.1
% to test dct2.m;
% 运行时,键入文件名 exa080902_dct2(k),给定k的值即可,k=0~8
%-------------------------------------------------------------------------
function exa080902_dct2(k)

% 调出图像数据 girl.bmp;
X=imread('girl.bmp','bmp');

A=double(X);
B=zeros(size(A));
C=zeros(size(A));

% 作二维DCT,每一小块为 8×8;
s=size(A);
for m=1:s(1)
   if rem(m,8)==0
  		for n=1:s(2)
          if rem(n,8)==0
         	   B((m-8+1):m,(n-8+1):n)=dct2(A((m-8+1):m,(n-8+1):n));
               B((m-k+1):m,(n-8+1):n)=0;
               B((m-8+1):m,(n-k+1):n)=0;
         end
      end
     end
  end
  
% 逆DCT,重建信号;
 for m=1:128     
   	if rem(m,8)==0
				for n=1:128
                 if rem(n,8)==0
                 C((m-8+1):m,(n-8+1):n)=idct2(B((m-8+1):m,(n-8+1):n));
                end
      		end
      end
  end
  
 % 输出二维图像;
  C=uint8(C);
  subplot(2,2,1);
  subimage(X);
  axis square;xlabel('original image')
  subplot(2,2,2);
  subimage(C);
  axis square;xlabel('reconstructed image');
  
                             

⌨️ 快捷键说明

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