您所在位置:网站首页 > 海量文档
 > 电子工程/通信技术 > 电子电气自动化
实验六图像DCT变换编码压缩报告.doc4页
本文档一共被下载:次,您可全文免费在线阅读后下载本文档。
下载提示
1.本站不保证该用户上传的文档完整性,不预览、不比对内容而直接下载产生的反悔问题本站不予受理。
2.该文档所得收入(下载+内容+预览三)归上传者、原创者。
3.登录后可充值,立即自动返金币,充值渠道很便利
实 验 报 告
实验课程名称 数字图像处理
实验项目名称 图像DCT变换编码压缩
年 级 2010
专 业 光 信 101
学生姓名 肖明进
学 号 1007010124
理 学 院
实验时间: 20 13 年5月 9日
学院: 理学院 专业:光信 班级:光信101
姓 名肖明进学 号1007010124实验组实验时间2013-5-9指导教师徐锦成 绩实验项目名称图像DCT变换编码压缩实验目的及要求:
1.掌握离散余弦变换DCT的实验方法,了解DCT的幅度分布特性,从而加深对DCT变换的认识。
2.掌握图像DCT变换编码的实现方法,从而加深对变换编码压缩图像原理的理解。
实验原理:
MATLAB图像处理工具箱实现离散余弦变换有两种方法:
使用函数DCT2,该函数用一个基于FFT的算法,用来提高对输入较大的时的计算速度。
使用DCTMTX函数返回的DCT变换矩阵,这种方法适合于较小的输入方阵(例如:8*8或16*16).
为了实现8*8子块的DCT图像变换,需要用到MATLAB中的BLKPROC函数。将这个函数和函数DCTMTX一起用于块处理可以大大简化运算。以上函数用MATLAB的help查看具体使用方法。
实验内容:
编程实现图像DCT变换编码。
实验步骤:(源程序参考书中P171—172的例子)
设置压缩比
求8*8块的DCT变换矩阵
计算8*8块的DCT变换
对DCT系数量化和反量化
求反量化系数(或称截取后的系数)的逆DCT变换
显示原始图像、压缩后图像、误差图像(两图相减的结果)
数据记录及处理:
1.源程序:
cr=0.5;
initialimage=imread('lena512.bmp');
initialimage=double(initialimage)/255;
figure(1); subplot(1,3,1);
imshow(initialimage);title('原图像');
t=dctmtx(8);
dctcoe=blkproc(initialimage,[8 8],'P1*x*P2',t,t');
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');
i2=blkproc(b2,[8 8],'P1*x*P2',t',t);
subplot(1,3,2);imshow(i2);title('压缩后图像');
e=double(initialimage)-double(i2);
[m,n]=size(e);
erms=sqrt(sum(e(:).^2)/(n*m));
subplot(1,3,3);imshow(e);title('误差图像');
结果图:
思考题:
图像变换编码中为什么要对图像进行分块?
答:1.小块图像的变换计算容易;
2.距离较远的像素之间的相关性比距离较近的像素之间的相关性小。
简述DCT编码的原理及基本过程。
答:子图像分割、变换、量化、编码。
指导教师意见:
签名: 年 月 日
发表评论
请自觉遵守互联网相关的政策法规,严禁发布色情、暴力、反动的言论。
用户名:
验证码:
匿名?
发表评论