实验一 游程编码.doc

  1. 1、本文档共7页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
PAGE PAGE 7 计 算 机 视 觉 实 验 报 告 姓 名:胡鹏 学 号:2006116129 学 院:信息科学与技术学院 专 业:电子信息科学与技术 二值图像的游程编码算法 二值图像 二值图像(binary image),即图像上的每一个像素只有两种可能的取值或灰度等级状态,人们经常用黑白、BW、单色图像表示二值图像。 在计算机视觉研究上,研究二值图像是研究灰度图像、彩色图像和深度图像的基础。许多二值图像技术都可以用于灰度图像视觉系统上,再灰度或彩色图像中,表示一个目标或物体的一种简单方法就是使用物体模版,而物体麽办就是一幅二值图像。其中1表示目标上的点,0表示其他点。二值图像的研究应用并不局限于二值图像。 游程编码 游程编码又称“运行长度编码”或“行程编码”,是一种统计编码,该编码属于无损压缩编码。对于二值图有效。   游程编码的基本原理是:用一个符号值或串长代替具有相同值的连续符号(连续符号构成了一段连续的“行程”。行程编码因此而得名),使符号长度少于原始数据的长度。   例如:1111112222233334444455555555   游程编码为:(1,6)(2,5)(3,4)(4,5)(5,5)。可见,游程编码的位数远远少于原始字符串的位数。 在对图像数据进行编码时,沿一定方向排列的具有相同灰度值的像素可看成是连续符号,用字串代替这些连续符号,可大幅度减少数据量。在游程编码中经常运用两种方法,一种是使用1的起始位置和1 的游程长度,另一种是仅仅使用游程长度,如果第一个编码值为0,则表示游程长度编码是从0像素的长度开始。 根据游程编码的定义和性质可知,游程编码是一种二值图像的很有效表示方法。 设计思路 将一幅灰度图像或彩色图像转换为相应的二值图像; 将所得二值图像进行游程编码并压缩数据; 将(二)所得数据进行游程编码解压,恢复出二值图像。 用Matlab编程 实验源程序及相关结果: tu1=imread(G:\照片\照片\校徽.jpg); %读入图像 imshow(tu1); %显示原图像 % 以下程序是将原图像转换为二值图像 tu2=tu1(1:72900); %将原始图像写成一维的数据并设为 tu2 tu2length=length(tu2); % 计算tu2的长度 for i=1:1:tu2length % for 循环,目的在于转换为二值图像 if tu2(i)=127 tu2(i)=255; else tu2(i)=0; end end tu3=reshape(tu2,270,270); % 重建二维数组图像,并设为tu3 figure,imshow(tu3); % 以下程序为对原图像进行游程编码,压缩 X=tu3(:); %令X为新建的二值图像的一维数据组 x=1:100:length(X); % 显示游程编码之前的图像数据 figure,plot(x,X(x)); j=1; tu4(1)=1; for z=1:1:(length(X)-1) % 游程编码程序段 if X(z)==X(z+1) tu4(j)=tu4(j)+1; else data(j)=X(z); % data(j)代表相应的像素数据 j=j+1; tu4(j)=1; end end data(j)=X(length(X)); % 最后一个像素数据赋给data tu4length=length(tu4); % 计算游程编码后的所占字节数,记为tu4length y=1:10:tu4length ; % 显示编码后数据信息 figure,plot(y,tu4(y)); % 下面程序是游程编码解压 I=1; for m=1:tu4length for n=1:1:tu4(m); rec_tu(l)=data(m); l=l+1; end end u=1:100:length(rec_tu); % 查看解压后的图像数据 figure,plot(u,rec_tu(u)); rec2_tu=reshape(rec_tu,270,270); % 重建二维二维图像数组 figure,imshow(rec2_tu); % 显示解压恢复后的图像

文档评论(0)

小教资源库 + 关注
实名认证
内容提供者

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

1亿VIP精品文档

相关文档