用一种变换编码的方法(如DCT变换)对图像进行压缩和解压缩,分别采用区域编码法和门限编码法处理变换系数(也可用熵编码方法);简述原理,打印出原始图像和解压后图像,计算信噪比,估算出压缩比。
本文采用的是DCT变换
1)区域编码
(1)程序运行平台:matlab
(2)流程:读入图像--->进行8*8分离块操作 对源图像进行DCT变换--->数据压缩(丢弃区域外即右下角的高频数据)--->进行反DCT变换--->计算信噪比--->显示压缩前和压缩后的图像
(3)程序代码:
clear
I = imread('me1.bmp');
I=im2double(rgb2gray(I));
T=dctmtx(8);
B=blkproc(I,[8 8],'P1*x*P2',T,T');%进行8*8分离块操作
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);
imshow(I)
title('原始图像')
figure;
imshow(I2)<