⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 exdct.m

📁 常用图像压缩编码码matlab实现。包括:DM编码、变换编码(FFT和DCT)、算术编码、行程编码、Huffman编码、线性预测编码和一个近似的JPEG编码过程。非常适合入门用户实践。
💻 M
字号:
% 设置压缩比,cr=0.5为2:1压缩;cr=0.1250为8:1压缩
cr = 0.125;
initialimage = imread('lena512.bmp');
initialimage = double(initialimage)/255;
figure();
subplot(121);
imshow(initialimage);

%对图像进行DCT变换
t = dctmtx(8);
dctcoe = blkproc(initialimage, [8 8], 'P1*x*P2', t, t');

%将DCT变换后的矩阵转换成列,并按升序排列
coevar = im2col(dctcoe, [8 8], 'distinct');
coe = coevar;
[y, ind] = sort(coevar);

[m, n] = size(coevar);

%舍去不重要的系数
snum = 64-64 * cr;
for i = 1:n
    coe(ind(1:snum), i) = 0;
end

%把列变换为二维矩阵
b2 = col2im(coe, [8 8], [512 512], 'distinct');

%逆DCT变换
i2 = blkproc(b2, [8 8], 'P1*x*P2', t', t);
subplot(122);
imshow(i2);

e = double(initialimage)-double(i2);
[m, n] = size(e);
erms = sqrt(sum(e(:).^2)/(m*n))

⌨️ 快捷键说明

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