📄 sumarize11_4_2dct.m
字号:
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 + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -