sumarize11_4_2dct.m
来自「matlab7.0从入门到精通(光盘内容)」· M 代码 · 共 24 行
M
24 行
I = imread('cameraman.tif');
I = im2double(I);
%产生二维DCT变换矩阵
T = dctmtx(8);
%计算二维DCT
B = blkproc(I,[8 8],'P1*x*P2',T,T');
%二值掩模,用来压缩DCT系数
mask = [1 1 1 1 0 0 0 0
1 1 1 0 0 0 0 0
1 1 0 0 0 0 0 0
1 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0];
%只保留DCT变换的11个系数
B2 = blkproc(B,[8 8],'P1.*x',mask);
%DCT反变换,用来重构图像
I2 = blkproc(B2,[8 8],'P1*x*P2',T',T);
subplot(1,2,1)
imshow(I),
subplot(1,2,2)
imshow(I2)
⌨️ 快捷键说明
复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?