jpeg.m

来自「关于JPEG压缩和置乱的 很不错的 很实用」· M 代码 · 共 24 行

M
24
字号
%function Jpeg
I=imread('lena512.bmp');
%该图片在安装matlab的目录中找,原图为灰度图象
I=im2double(I);%图像存储类型转换
T=dctmtx(8);%离散余弦变换矩阵
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];
B2=blkproc(B,[8 8],'P1.*x',mask);
%数据压缩,丢弃右下角高频数据
I2=blkproc(B2,[8 8],'P1*x*P2',T',T);
%进行DCT反变换,得到压缩后的图像
imshow(I)
title('原始图像')
figure;
imshow(I2)
title('压缩后的图像')

⌨️ 快捷键说明

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