这两天老师上课讲到了RLE无损压缩的方法,随后布置了作业,编程对不同图像使用rle压缩,并分析。然后我使用matlab就开干了,然而由于对RLE方法了解不多,上课老师好像也没提这种方法是针对二值图的,然后我就用来做灰度图了,不过感觉差不多,下面是matlab代码:

clear
[a,b]=imread('hardware.gif');
I=ind2gray(a,b);
[x y]=size(I);
I1=zeros(x,y);
I2=zeros(x,y);
k1=1;
k2=1;
I3=zeros(x,1);%压缩后每一行数据个数
all=0;%像素总个数
for i=1:1:xn=1;for j=1:1:yX=I(i,j);if j~=y%防止超出边界if X==I(i,j+1)%判断是否与下一个像素值灰度大小是否相等n=n+1;elseI1(i,k1)=I(i,j);%该部分是在上面不相等时候将灰度值保存在I1,同时将个数保存在I2I2(i,k1)=n;k1=k1+1;n=1;I3(i,1)=I3(i,1)+1;endendif j==y%最后一个像素单独计算I1(i,k1)=I(i,j);I2(i,k1)=n;k1=k1+1;n=1;I3(i,1)=I3(i,1)+1;endendall=all+I3(i,1);%求总像素个数k1=1;
end
M=max(max(I2));%求取重复像素个数最大值,以便确定其最大需要个bit位大小%图像恢复过程
I4=zeros(x,y);%定义恢复后图像矩阵
m=1;
for i=1:1:xfor k=1:1:I3(i,1)for j=1:1:I2(i,k)I4(i,m)=I1(i,k);m=m+1;endendm=1;
end
I4=uint8(I4);
subplot(1,2,1)
imshow(I);
title('原始图像');
subplot(1,2,2)
imshow(I4);
title('无损压缩后恢复出来的图像');

以下为一个例子(由于实际图片太大,故实际跑程序时用的是横坐标像素个数为25图片)

像素值:

RLE处理后剩下灰度值:

相同灰度像素的个数(I2):

由M值可以知,只需要5bit即可表示I2,所以有压缩比:
压缩比=(182* 8+182* 5)/(18* 25* 8)*100%=65.72%

图像恢复结果:

虽然RLE是针对二值图的,但是我感觉其实其他类型图也一样,只不过可能二值图效果更好些,因为没有那么多灰度等级。

基于RLE的matlab图像无损压缩实现相关推荐

  1. 【图像压缩】DCT图像无损压缩【含GUI Matlab源码 726期】

    ⛄一.DCT图像无损压缩简介 1 图像压缩 图像压缩按照压缩过程中是否有信息的损失以及解压后与原始图像是否有误差可以分为无损压缩和有损压缩两大类.无损压缩是指不损失图像质量的压缩,它是对文件的存储方式 ...

  2. matlab画梅花,基于Matlab图像素描生成算法究.doc

    毕 业 文 图像素描生成算法研究 姓 名 院(系) 信息学院 专业班级 学 号 指导教师 职 称 论文答辩日期 年月日 摘 要 分析比较图像处理提供参考.关键词: 目 录 1 前言1 1.1 课题研究 ...

  3. 【图像分割】基于计算机视觉实现视网膜图像中的血管分割附matlab代码

    1 简介 视网膜图像里的血管是可以被观察到的一类微血管,并且它是无创伤的,而其分布位置也属于深度部位[5].其分布.结构和形态特征的变化能在一定程度上反映病变的程度.而白血病.糖尿病以及高血压等疾病都 ...

  4. 【图像修复】基于深度学习的图像修复算法的MATLAB仿真

    1.软件版本 matlab2021a 2.本算法理论知识 在许多领域,人们对图像质量的要求都很高,如医学图像领域.卫星遥感领域等.随着信息时代的快速发展,低分辨率图像已经难以满足特定场景的需要.因此, ...

  5. 【MATLAB教程案例47】基于双目相机拍摄图像的三维重建matlab仿真

    欢迎订阅<FPGA学习入门100例教程>.<MATLAB学习入门100例教程> 本课程学习成果预览: 目录 1.软件版本 2.基于双目相机拍摄图像的三维重建原理概述

  6. 一种基于卷积神经网络的图像去雾研究-含matlab代码

    目录 一.绪论 二.去雾卷积网络 2.1 特征提取 2.2 多尺度映射 2.3 局部均值 2.4 非线性回归 三.实验与分析 四.Matlab代码获取 一.绪论 雾是一种常见的大气现象,空气中悬浮的水 ...

  7. 【第 01 章 基于直方图优化的图像去雾技术-全套系统MATLAB智能驾驶深度学习】

    毋庸置疑的是,在汽车智能技术.汽车新能源技术.汽车电子这个群雄逐鹿的赛道.智能驾驶技术的要求也在不断的提升. 智能车辆教学平台.智能网联教学平台.汽车电子教学设备.在环仿真系统,目前主流的系统有很多, ...

  8. DCT变换编码matlab,基于DCT变换的图像压缩编码的MATLAB实现

    基于DCT变换的图像压缩编码的MATLAB实现 今天是一个信息化.网络化的时代,通过Internet可以获取全面的文字.图像.声音等信息,但是,图像信息需要占据大量的存储空间,给原始数 (本文共4页) ...

  9. 基于SIFT特征的图像配准(附Matlab源代码)

    基于SIFT特征的图像配准(附Matlab源代码) 本文先给出了采用SIFT方法进行图像配准的实验原图以及实验结果,最后附上Matlab源代码. 实验一: 实验一的图像(见图1.1)是本人自己拍摄的, ...

  10. 基于MATLAB的数字图像K-L变换,基于DCT变换的图像编码方法研究

    分类号 密级 UDC注l 学 位 论 文 基于DCT变换的图像编码方法研究 (题名和副题名) 朱剑英 (作者姓名 指导教师姓名 副教授 中诱学位级别硕士 沦_义提交日期2004.1 专.业名称 通信与 ...

最新文章

  1. 2015年二级c语言真题及答案,2015年计算机二级C语言测试题及答案(4)
  2. 深入了解SAP S4 HANA Business Partner
  3. 二阶系统响应指标图_15. 闭环系统的频域性能指标
  4. RocketMQ 4.5.1 环境搭建
  5. html css 样式中100%width 仍有白边解决办法
  6. 10. Javascript DOM节点
  7. UML之旅店预订系统
  8. 推荐系统之itemCF
  9. 读史可以明智_在开发中明智思考的5种方法
  10. ewebeditor php漏洞,ewebeditor for php任意文件上传漏洞
  11. Matplotlib数据可视化——图中图
  12. 【Python实战项目】做一个 刮刮乐 案例,一不小心....着实惊艳到我了。
  13. Uncaught Error: @electron/remote is disabled for this WebContents
  14. jmeter查看平均响应时间_线上服务平均响应时间太长,怎么排查?
  15. Java获取一年有多少周、某周的第一天和最后一天,当前时间所在当年的实际周数
  16. C语言基础--编写风格1
  17. oss图片处理—制作海报
  18. 小米手环7添加校园卡(门禁)
  19. 关于迁移系统造成蓝屏winload.exe缺失问题解决过程
  20. 【268期】不小心将测试代码提交到生产环境,教你 6 种方法秒解决!

热门文章

  1. [Python GUI]Python内置图形界面tkinter Eye-Hand Coordination--游戏实战1
  2. w10系统服务器管理器,Win10如何打开服务管理器
  3. c语言中罗马字母数字,罗马数字转整数C语言实现
  4. 生物信息学数据库导航
  5. 架构师的主要职责是什么?
  6. 两点间距离、点到直线距离、点到线段距离、线段到线段距离
  7. centos7快速搭建KMS服务器
  8. 通过PHP访问MYSQL外文书籍,通过PHP访问MySQL外文翻译(模版2)
  9. 前端Svelte框架初体验
  10. 马斯克入驻推特造成大恐慌!这俩戏精还冒充被裁员工,外媒全被耍了