编号:B736
大小:2.3M
环境:Matlab2020B
简介:该项目是数字图像处理课后实验,题目为“灰度图像赫夫曼编码”。
该项目使用软件及版本为Matlab 2019a。
该项目实现了一张图像通过赫夫曼变长编码进行压缩生成比特文件,同样也实现从比特文件解码成为一张图片的功能。
代码结构
Huffman_code.m
输入:
Image [m*n (double)]: 目标图像且为黑白图像
Filepath (String): 编码文件保存路径
输出:
Code: 哈夫曼编码的输出结果,为 uint8 的数组
Info: 计算得到的编码各指标分析数值结构体
函数功能:
将输入的图像进行哈夫曼变长编码压缩,将编码结果写入路径文件,并返回编码性能分析结果。
Huffman_decode.m
输入:
Filepath (String): 编码文件保存路径
输出:
Image_final [m*n (double)]: 为还原图像且为黑白图像
函数功能:
将路径对应文件进行哈夫曼变长解码,还原出图像
main.m
功能:
脚本执行文件
自定义头文件
定义如下:
首先用16 bit来表示整个文件头的长度,这个信息可以在解码时准确分隔文件头部分和主体部分;
用两个16 bit来表示图像的分辨率,用于解码时的图像重构;
其他部分为编码表,编码表的每个码字长度不一, 最极端的情况下,最长码字为255 bit,最短为0 bit,如果为每一个码字分配256 bit即16 byte的空间会有很大程度的浪费,
所以先使用一个8 bit来表示该变长码字的长度再将等长的码字内容接在其后,然后紧接着是下一个码字的长度和内容,这样可以缩短头文件的长度。
如图所示:
运行展示
配套文件
我们提供完整项目文件清单如下:
文件目录
├ 1.项目源码
├ 2.运行截图
└ 3.演示视频
2. 分享目的仅供大家学习和交流,请不要用于商业用途!
3. 如果你也有好源码或者文档,可以与我们交换,分享有积分奖励和额外收入!
4. 本站提供的源码、文档等等其他资源,都不包含技术服务请大家谅解!
5. 如有链接无法下载、失效或广告,请联系管理员处理!
6. 本站资源售价只是赞助,收取费用仅维持本站的日常运营所需!
7. 如遇到加密压缩包,默认解压密码为"www.2zcode.com",如遇到无法解压的请联系管理员!
8. 因为资源和程序源码均为可复制品,所以不支持任何理由的退款兑现,请斟酌后支付下载
声明:网站内的所有源码都经过我们亲自测试,均可以正常使用.
索炜达.猿创 » 数字图像处理之基于Matlab灰度图像赫夫曼编码
常见问题FAQ
- 免费下载或者VIP会员专享资源能否直接商用?
- 本站所有资源版权均属于原作者所有,这里所提供资源均只能用于参考学习用,请勿直接商用。若由于商用引起版权纠纷,一切责任均由使用者承担。更多说明请参考 VIP介绍。
- 提示下载完但解压或打开不了?
- 你们有qq群吗怎么加入?