如何用MATLAB进行图像压缩用3种不同的压缩比进行DCT余弦离散变换

来源:学生作业帮助网 编辑:作业帮 时间:2024/05/02 01:26:16

如何用MATLAB进行图像压缩用3种不同的压缩比进行DCT余弦离散变换
如何用MATLAB进行图像压缩
用3种不同的压缩比进行DCT余弦离散变换

如何用MATLAB进行图像压缩用3种不同的压缩比进行DCT余弦离散变换
I = imread('cameraman.tif'); % 输入图像
I = im2double(I); % 数据类型转换
T = dctmtx(8); % 计算二维离散DCT矩阵
dct = @(x)T * x * T'; % 设置函数句柄
B = blkproc(I,[8 8],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];
B2 = blkproc(B,[8 8],@(x)mask.* x); % 图像块处理
invdct = @(x)T' * x * T; % 设置函数句柄
I2 = blkproc(B2,[8 8],invdct); % 图像块处理
imshow(I),figure,imshow(I2) % 显示原始图像和压缩重构图像