电子文档交易市场
安卓APP | ios版本
电子文档交易市场
安卓APP | ios版本

实验三 图像压缩编码技术

15页
  • 卖家[上传人]:n****
  • 文档编号:88920172
  • 上传时间:2019-05-13
  • 文档格式:PDF
  • 文档大小:1.02MB
  • / 15 举报 版权申诉 马上下载
  • 文本预览
  • 下载提示
  • 常见问题
    • 1、 实验报告 课程名称: 数字图像处理 实验名称: 图像压缩编码技术 实验地点: 明向校区 D001 机房 专业班级: 测控 1401 班 学号: 学生姓名: 郭佳鑫 指导教师: 刘 帆 2017 年 4 月 21 日 2014001796 数字图像处理实验报告 2 一、一、实验目的实验目的 1.理解有损压缩和无损压缩的概念。 2.理解图像压缩的主要原则和目的。 3.了解几种常用的图像压缩编码方式。 4.利用 MATLAB 程序进行图像压缩编码。 二、二、实验原理实验原理 1、图像压缩原理图像压缩原理 图像压缩主要目的是为了节省存储空间,增加传输速度。图像压缩的理想标准是信息丢失最少,压缩 比例最大。不损失图像质量的压缩称为无损压缩,无损压缩不可能达到很高的压缩比;损失图像质量的压 缩称为有损压缩,高的压缩比是以牺牲图像质量为代价的。压缩的实现方法是对图像重新进行编码,希望 用更少的数据表示图像。 信息的冗余量有许多种,如空间冗余,时间冗余,结构冗余,知识冗余,视觉冗余等,数据压缩实质 上是减少这些冗余量。高效编码的主要方法是尽可能去除图像中的冗余成分,从而以最小的码元包含最大 的图像信

      2、息。 2、编码压缩方法有许多种,从不同的角度出发有不同的分类方法,从信息论角度出发可分为两大类。编码压缩方法有许多种,从不同的角度出发有不同的分类方法,从信息论角度出发可分为两大类。 (1)冗余度压缩方法,也称无损压缩、信息保持编码或熵编码。具体说就是解码图像和压缩编码前的 图像严格相同,没有失真,从数学上讲是一种可逆运算。 (2)信息量压缩方法,也称有损压缩、失真度编码或烟压缩编码。也就是说解码图像和原始图像是有 差别的,允许有一定的失真。 3、应用在多媒体中的图像压缩编码方法,从压缩编码算法原理上可以分为以下应用在多媒体中的图像压缩编码方法,从压缩编码算法原理上可以分为以下 3 类:类: (1)无损压缩编码种类 哈夫曼(Huffman)编码,算术编码,行程(RLE)编码,Lempel zev 编码。 (2)有损压缩编码种类 预测编码,DPCM,运动补偿; 频率域方法:正交变换编码(如 DCT),子带编码; 空间域方法:统计分块编码; 模型方法:分形编码,模型基编码; 基于重要性:滤波,子采样,比特分配,向量量化; (3)混合编码。 有 JBIG,H.261,JPEG,MPEG 等技

      3、术标准。 本实验主要利用 MATLAB 程序进行赫夫曼 (Huffman) 编码和行程编码 (Run Length Encoding, RLE) 。 三、三、实验仪器实验仪器 1.计算机。 2.MATLAB、Photoshop 等程序。 3.移动式存储器(软盘、U 盘等) 。 4.记录用的笔、纸。 数字图像处理实验报告 3 四四、实验步骤与、实验步骤与内容内容 1、实现基本实现基本 JPEG 的压缩和编码分三个步骤:的压缩和编码分三个步骤: (1)首先通过 DCT 变换去除数据冗余; (2)使用量化表对 DCT 系数进行量化; (3)对量化后的系数进行 Huffman 编码。 我逐步进行了该项内容的实验: 实验中我们使用的是一张 512*512 像素的 RGB 彩图 lena.bmp,在程序中我们需要现将其转化为单通道 256 级灰度图。 程序代码如下: x=imread(lena.bmp); x=rgb2gray(i); figure(1); subplot(121); imshow(x); 运行结果如下: 接下来进行近似基本 JPEG 编码。 代码及结果如下: 出现错误,提示未找到

      4、 JPEG 编码函数。 数字图像处理实验报告 4 查阅课本,发现完成该内容需要自行定义若干函数,具体名称如下: 具体代码如下: %函数函数 addnod 添加节点添加节点 function codeword_new=addnode(codeword_old,item) codeword_new=cell(size(codeword_old); for index=1:length(codeword_old) codeword_newindex=item codeword_oldindex; end %函数函数 bytes 返回输入返回输入 f 占用的比特数占用的比特数 function b=bytes(f) if ischar(f) info=dir(f); b=info.bytes; elseif isstruct(f) b=0; fields=fieldnames(f); for k=1:length(fields) b=b+bytes(f.(fieldsk); end else info=whos(f); b=info.bytes; end %函数函数 imageratio 计算

      5、两个图像压缩比计算两个图像压缩比 function cr=imageratio(f1,f2) error(nargchk(2,2,nargin); cr=bytes(f1)/bytes(f2); %函数函数 decode 返回码字对应的符号返回码字对应的符号 function byte=decode(code,info) byte=info.huffcodes(code); 数字图像处理实验报告 5 %函数函数 frequency 计算各个符号出现的概率计算各个符号出现的概率 function f=frequency(vector) if isa(vector,uint8) error(input argument must be a uint8 vector); end f=repmat(0,1,256); len=length(vector); for index=0:255 f(index+1)=sum(vector=uint8(index); end f=f./len; %huffencode 函数对输入矩阵函数对输入矩阵 vector 进行进行 Huffman 编码,返回编码

      6、后的向量(压缩后数据)及相关信编码,返回编码后的向量(压缩后数据)及相关信 息息 function zipped,info=huffencode (vector) if isa(vector,uint8) eror(input argument must be a uint8 vector); end m,n=size(vector); vector=vector(:); f=frequency(vector); %计算各个符号出现的概率 symbols=find(f=0); f=f(symbols); f,sortindex=sort(f); %将符号按照出现的概率大小排列 symbols=symbols(sortindex); len=length(symbols); symbols_index=num2cell(1:len); codeword_tmp=cell(len,1); while length(f)1 %生成 huffman 树,得到码字编码表 index1=symbols_index1; index2=symbols_index2; codeword_tmp(inde

      7、x1)=addnode(codeword_tmp(index1),uint8(0); codeword_tmp(index2)=addnode(codeword_tmp(index2),uint8(1); f=sum(f(1:2) f(3:end); symbols_index=index1,index2 symbols_index(3:end); f,sortindex=sort(f); symbols_index=symbols_index(sortindex); end codeword=cell(256,1); codeword(symbols)=codeword_tmp; len=0; for index=1:length(vector) %得到整个图像所有比特数 len=len+length(codeworddouble(vector(index)+1); 数字图像处理实验报告 6 end string=repmat(uint8(0),1,len); pointer=1; for index=1:length(vector) %对输入图像进行编码 code=codeword

      8、double(vector(index)+1; len=length(code); string(pointer+(0:len-1)=code; pointer=pointer+len; end len=length(string); pad=8-mod(len,8); %非 8 整数倍时,最后补 pad 个 0 if pad0 string=string uint8(zeros(1,pad); end codeword=codeword(symbols); codelen=zeros(size(codeword); weights=2.(0:23); maxcodelen=0; for index=1:length(codeword) len=length(codewordindex); if lenmaxcodelen maxcodelen=len; end if len0 code=sum(weights(codewordindex=1); code=bitset(code,len+1); codewordindex=code; codelen(index)=len; end e

      9、nd codeword=codeword:; %计算压缩后的向量 cols=length(string)/8; string=reshape(string,8,cols); weights=2.(0:7); zipped=uint8(weights*double(string); %码表存储到一个稀疏矩阵 huffcodes=sparse(1,1); for index=1:nnz(codeword) %length(codeword) %numel(codeword) huffcodes(codeword(index),1)=symbols(index); end info.pad=pad; info.huffcodes=huffcodes; info.ratio=cols./length(vector); 数字图像处理实验报告 7 info.length=length(vector); info.maxcodelen=maxcodelen; info.rows=m; info.cols=n; % huffdecode 函数对输入矩阵函数对输入矩阵 vector 进行进行 Huffman 解码,返回解压后的图像数据解码,返回解压后的图像数据 function vector=huffdecode(zipped,info,image) if isa(zipped,uint8) error(input argument must be a uint8 vector); end %产生 0,1 序列,每位占一个字节 len=length(zipped); string=repmat(uint8(0),1,len.*8); bitindex=1:8; for index=1:len string

      《实验三 图像压缩编码技术》由会员n****分享,可在线阅读,更多相关《实验三 图像压缩编码技术》请在金锄头文库上搜索。

      点击阅读更多内容
    最新标签
    信息化课堂中的合作学习结业作业七年级语文 发车时刻表 长途客运 入党志愿书填写模板精品 庆祝建党101周年多体裁诗歌朗诵素材汇编10篇唯一微庆祝 智能家居系统本科论文 心得感悟 雁楠中学 20230513224122 2022 公安主题党日 部编版四年级第三单元综合性学习课件 机关事务中心2022年全面依法治区工作总结及来年工作安排 入党积极分子自我推荐 世界水日ppt 关于构建更高水平的全民健身公共服务体系的意见 空气单元分析 哈里德课件 2022年乡村振兴驻村工作计划 空气教材分析 五年级下册科学教材分析 退役军人事务局季度工作总结 集装箱房合同 2021年财务报表 2022年继续教育公需课 2022年公需课 2022年日历每月一张 名词性从句在写作中的应用 局域网技术与局域网组建 施工网格 薪资体系 运维实施方案 硫酸安全技术 柔韧训练 既有居住建筑节能改造技术规程 建筑工地疫情防控 大型工程技术风险 磷酸二氢钾 2022年小学三年级语文下册教学总结例文 少儿美术-小花 2022年环保倡议书模板六篇 2022年监理辞职报告精选 2022年畅想未来记叙文精品 企业信息化建设与管理课程实验指导书范本 草房子读后感-第1篇 小数乘整数教学PPT课件人教版五年级数学上册 2022年教师个人工作计划范本-工作计划 国学小名士经典诵读电视大赛观后感诵读经典传承美德 医疗质量管理制度 2 2022年小学体育教师学期工作总结
    关于金锄头网 - 版权申诉 - 免责声明 - 诚邀英才 - 联系我们
    手机版 | 川公网安备 51140202000112号 | 经营许可证(蜀ICP备13022795号)
    ©2008-2016 by Sichuan Goldhoe Inc. All Rights Reserved.