数字图像处理课程的设计.docVIP

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
数 字 图 像 处 理 课程设计报告 题 目:基于矢量量化技术的编码 专业班级: 学 号: 姓 名: 基于矢量量化技术的图像编码 设计目的 1.1掌握MATLAB GUI 程序设计 1.2学习和熟悉MATLAB图像处理工具箱 1.3学会运用MATLAB工具箱对图像进行处理和分析 二、设计环境 Window XP,MATLAB 7.0 三、总体设计 数字图像处理技术是20世纪60年代发展起来的一门新兴学科,随着图像处理理论和方法的进一步完善,使得数字图像处理技术在各个领域得到了广泛应用,并显示出广阔的应用前景。矢量量化技术是一种有损压缩技术,它根据一定的是真测度在码书中搜引出与输入适量失真最小的码字的索引,传输时仅传输这些码字的索引,接收方根据码字索引字,码书中查找对应码字,再现输入矢量。 矢量量化分三个主要步骤:一是训练码书,二是编码,三是解码。 有好的码书,才能进行有效的数据压缩编码,因此码书的设计是矢量量化的关键。用M个训练矢量生成包含N(NM)个码字的码书,也就是说把M个训练适量分成N类最佳分类,并把各类的中心矢量最为码书中的码字,这里介绍一种直观有效的矢量量化码书设计算法,即LGB算法。 生成初始码书。可以用随机方法生成,也可以将训练样本随机分配于码书中。 进行迭代训练。每次迭代中,每一个训练矢量X1(i=12…M)与码书中各个码Yj(j=1,2,….N)相比较,找到与该训练适量最相近的一个码字Yk,并把所有与Yk(j=1,2,….N)最相近的训练矢量归为一类,这样一共有N类。然后计算个训练矢量与其在码书中最相近的码字的距离的平方之和,得到当前迭代的中矢量。若这次迭代的总矢真与上次迭代的总矢量之间的相对误差满足给定要求,则停止迭代,否则求出个类的中心矢量作为新的码书进行下一次迭代。 矢量量化的编码就是根据一定的失真测度在码书中搜索出与输入矢量失真最小的码字的索引,编码过程就是完成输入矢量的马子搜索过程。 矢量量化的解码过程很简单,即根据接收到的码字索引在码书中找到该码字,并将该码字最为输入适量的替代矢量。 若矢量量化编码中用N个k维码字组成码书,那么对某个输入矢量序列进行编码后,其对应的标号需要log2N比特传输。 下面将用一个实例来讲解Matlab如何实现适量量化压缩, 原图像为: 1.码书设计: 对图像进行矢量量化时,首先要选择码书的尺寸和码字的大小,这两个参数与图像压缩效果有直接的关系。另外,不同的码书训练方法生成的码书性能也有所不同。这里我们用最简单的LBG方法训练码书。码字为4*4的子图像块,码书的尺寸为64,其Matlab程序如下: function LBGdesign() %读入标准图像,用于码书的训练 figure(1); sig=imread(1.bmp); %用size函数得到图像的行数和列数 [m_sig,n_sign]=size(sig); %设置码字的大小,4*4 siz_word=4; %设置码书的大小 siz_book=64; %将图像分割成4*4的子图像,作为码书训练的输入向量 num=m_sig/siz_word; ss=siz_word*siz_word; %码字的大小 nn=num*num; %子图像个数,即输入矢量个数 re_sig=[]; for i=1: m_sig for j=1:m_sig f1=floor(i./siz_word); m1=mod(i,siz_word); if m1==0 m1=siz_word; f1=f1-1; end f2=floor(j./siz_word); m2=mod(j,siz_word); if m2==0 m2=siz_word; f2=f2-1; end re_sig(num*f1+f2+1,siz_word*(m1-1)+m2)=sig(i,j); end end %码书初始化,从nn个输入矢量随机取siz_book个矢量作为初始矢量 codebook=[]; for i=1:siz_book r=floor(rand*nn)+1; cod

文档评论(0)

wpxuang12 + 关注
实名认证
文档贡献者

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

1亿VIP精品文档

相关文档