- 1、本文档共9页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
. . . .
. . ..
交通大学信息科学与工程学院
综合性设计性实验报告
专 业: 通信工程专业11级
学 号: 2
姓 名: 徐 国 健
实验所属课程: 移动通信原理与应用
实验室(中心): 信息技术软件实验室
指 导 教 师 : 益才
2014年5月
教师评阅意见:
签名: 年 月 日
实验成绩:
一、题目二值图像的游程编码及解码
二、仿真要求
对一幅图像进行编码压缩,然后解码恢复图像。
三、仿真方案详细设计
实验过程分为四步:分别是读入一副图象,将它转换成为二进制灰度图像,然后对其进行游程编码和压缩,最后恢复图象(只能恢复为二值图像)。
1、二值转换
所谓二值图像,就是指图像上的所有像素点的灰度值只用两种可能,不为“0”就为“1”,也就是整个图像呈现出明显的黑白效果。
2、游程编码原理
游程编码是一种无损压缩编码,对于二值图有效。游程编码的基本原理是:用一个符号值或串长代替具有相同值的连续符号,使符号长度少于原始数据的长度。据进行编码时,沿一定方向排列的具有相同灰度值的像素可看成是连续符号,用字串代替这些连续符号,可大幅度减少数据量。游程编码分为定长行程编码和不定长行程编码两种类型。游程编码是连续精确的编码,在传输过程中,如果其中一位符号发生错误,即可影响整个编码序列,使行程编码无法还原回原始数据。
3、游程编码算法
一般游程编码有两种算法,一种是使用1的起始位置和1的游程长度,另一种是只使用游程长度,如果第一个编码值为0,则表示游程长度编码是从0像素的长度开始。这次实验采用的是前一种算法。两种方法各有优缺点:前一种存储比第二种困难,因此编程也比较复杂。而后一种需要知道第一个像素值,故压缩编码算法中需给出所读出的图的第一个像素值。
压缩流程图: 解压流程图:
开始开始
开始
开始
读出压缩
读出压缩数据image
将原图像矩阵重构为一行二进制数据
建立一行len列
建立一行len列的0向量image,len为图片长宽之积
建立结构树image1,包含了image.pos和image.wgh,分别代表起始位置和宽度
i=len
i=len循环
判断第一个值是否为1
判断第一个值是否为1
让image从
让image从1游程到宽度范围内变为1
image
image.pos和image.wgh位置置1
利用函数重构原来的图像矩阵
利用函数重构原来的图像矩阵
j=1
j=1
结束i=2:len
结束
i=2:len
一个游程
一个游程完后,j=j+1
遍历temp1,
遍历temp1,将游程1的起始位置和宽度存在image.pos(j)和image.wgh(j)中。
将i
将image1转化为image,去掉多于存储空间
结束
结束
四、仿真结果及结论
上图为压缩编码后的图像
五、总结与体会
通过这次试验,我来了解一些关于游程编码的基本原理,所谓游程编码,其实它就是一种统计类型的编码,更是一种无损压缩编码。原理是用一个符号值或串长代替具有相同值的连续符号,使符号长度少于原始数据的长度。只在各行或者各列数据的代码发生变化时,一次记录该代码及相同代码重复的个数,从而实现数据的压缩,,而起始位置和宽度是关键。二值图像是指只有黑(用255表示)白(用0表示)两种亮度值的图像。把灰度值接近于255或者0的其他灰度都相应转化成255和0,即灰度图像就变成了黑白二值图像,通过对游程编码的原理可以看到一个灰度值由两个数值里来编码,这样效率很差,即便是游程足够长,用等长编码效率都不是太好。通过这次试验我对编码有了更深的一些认识,但还不足以独立实现,需要大量查阅资料,总的来说,我对原理很明确,对具体编码这一块儿还不是太熟,以后会在这方面多多实践。
六、主要仿真代码
实验代码:
image1=imread('D:\我的图片\实验图.jpg'); %读入图像
imshow(image1); %显示原图像
title('原始彩色图像');
imgGray = rgb2gray(image1); % 转为黑白图像
figure; % 建立一个新窗口
imshow(imgGray); % 显
文档评论(0)