相关代码 |
|
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)
相关资源 |
|