- 1、本文档共11页,可阅读全部内容。
- 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 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)