
一、实验内容
设计一种基于变换域的压缩编码方法(如DCT,DHT等),并在变换域设计一种系数量化方案压缩图像。
二、技术指标
基本要求:
1、比较不同变换方式的压缩比;
2、比较不同量化编码方式的压缩比
扩展要求:
3、比较不同变换的图像恢复信噪比;
4比较不同量化编码方式的图像恢复信噪比。
三、实验步骤
1图像的DCT变换
clear;
subplot(2,2,1)
imshow(c);
c=double(c);
title('origin image');
T = @dct2; %dct_____________
B = blkproc(c,[8 8],T);
subplot(2,2,2);%show the dct image
imshow(B);
mask = [1 1 1 1 1 0 0 0
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];
B2 = blkproc(B,[8 8],'P1.*x',mask);
T=@idct2;
d = blkproc(B2,[8 8],T);
d=mat2gray(d);
subplot(2,2,4);___
imshow(d);
实验结果
2 自编函数实现
clear;
I=double(rgb2gray(I));
figure(1);
imshow(uint8(I));
title('原图像');
Y=zeros(8,8);
for i=1:8
for j=1:8
if i==1
Y(i,j)=sqrt(1/8);
else
Y(i,j)=sqrt(2/8)*cos((pi*(2*(j-1)+1)*(i-1))/16);
end
end
end
s=blkproc(I,[8 8],'P1*x*P2',Y,Y');
figure(2);
imshow(uint8(s));
for j=1:8
for i=1:8
if j<=8-i+1
a(i,j)=1;
else
a(i,j)=0;
end;
end;
end;
s=blkproc(s,[8 8],'P1.*x',a);
figure(3);
imshow(uint8(s));
s=blkproc(s,[8 8],'P1*x*P2',Y',Y);
figure(4);
imshow(uint8(s));
title('经过压缩处理的图像')
四、实验总结
DCT(离散余弦变换)是一种与傅里叶变换紧密相关的数算。在傅里叶级数展开式中,如果被展开的函数是实偶函数,那么其傅里叶级数展开式中只含余弦项,再将其离散化可导出余弦变换,因此称之为离散余弦变换。
DCT变换编码的主要特点有:
在变换域里变换比空间域里简单;图像的相关性明显下降,信号的能量主要集中在少数几个变换系数上。采用量化和熵编码可以有效的压缩数据;具有较强的抗干扰能力
