多媒体实验二图片的压缩处理研讨.doc

  1. 1、本文档共11页,可阅读全部内容。
  2. 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
计算机科学与技术学院 2015-2016学年第1学期 《多媒体技术》 实验二:图像压缩算法实现 专业:   学号:   姓名:    教师:   完成日期:15.10.17 多媒体技术实验二 实验报告 (一)实验目的 1.理解有损压缩和无损压缩的概念; 2.理解图像压缩的主要原则和目的; 3.了解几种常用的图像压缩编码方式; 4.利用MATLAB程序进行图像压缩; (二)实验环境 1.高档微机:MPC 2.课前准备:标准实验纸张若干张 3.操作系统:Windows 2000 或Windows XP 中文版 4.编程工具:Matlab7.0 (三实验过程及结果RGB=imread(1.JPG); I=rgb2gray(RGB); J=dct2(I); imshow(log(abs(J),[]),colormap(jet(64)),colorbar J(abs(J)10)=0; K=idct2(J); figure,imshow(I); figure,imshow(K,[0,255]); 2)利用离散余弦变换进行JPEG图像压缩: RGB=imread(1.JPG); I=rgb2gray(RGB); J=dct2(I); imshow(log(abs(J),[]),colormap(jet(64)),colorbar J(abs(J)10)=0; K=idct2(J); figure,imshow(I); figure,imshow(K,[0,255]); 2) I=imread(1.JPG); I=rgb2gray(I); I=im2double(I); T=dctmtx(8); B=blkproc(I,[8 8],P1*x*P2,T,T); 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); Subplot(1,2,1); Imshow(I);title(原图像); Subplot(1,2,2); Imshow(I2);title(压缩图像); 截图:原图像与压缩图像 2.无损压缩:(利用行程编码(RLE)进行图像压缩原理) 压缩原理介绍: RLE(Run- Length Encoding 行程长度编码)算法是Windows 系统中使用的一种图像文件压缩方法, 其基本思想是: 将一扫描行中颜色值相同的相邻像素用两个字节来表示, 第一个字节是一个计数值, 用于指定像素重复的次数; 第二个字节是具体像素的值[2]。主要通过压缩除掉数据中的冗余字节或字节中的冗余位,从而达到减少文件所占空间的目的。例如, 有一表示颜色像素值的字符串RRRRRGGBBBBBB,用 RLE 压缩方法压缩后可用 5R2G6B 来代替,显然后者的串长度比前者的串长度小得多。译码时按照与编码时采用的相同规则进行, 还原后得到的数据与压缩前的数据完全相同。因此, RLE 是无损压缩技术。I=imread(girl.bmp); [m n l]=size(I); fid=fopen(yc.txt,w); sum=0; for k=1:l for i=1:m num=0; J=[]; value=I(i,1,k); for j=2:n if I(i,j,k)==value num=num+1;%统计相邻像素灰度级相等的个数 if j==n J=[J,num,value]; end else J=[J,num,value];%J的形式是先是灰度的个数及该灰度的值 value=I(i,j,k); num=1; end end col(i,k)=size(J,2);%记录Y中每行行程行程编码数  sum=sum+col(i,k); Y(i,1:col(i,k),k)=J;%将I中每一行的行程编码J存入Y的相应行中 end end [m1,n1,l1]=size(Y); di

文档评论(0)

希望之星 + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档