二值图像的游程编码及解码

一、实验目的

掌握游程编码,并用编程实现游程编码及解码。

二、实验引言

二值图像在图像分析中应用非常广泛

,

二值图像就是指只有黑白两个灰度级的图像

,

值图像具有存储空间小

,

处理速度快

,

可以方便地对图像进行布尔逻辑运算等特点

.

更重要的

,

在二值图像的基础上

,

还可以进一步对图像处理(编码等)

,

获得该图像的一些几何特征

或者其他更多特征。

游程编码作为编码技术中常用的一种,

对二值图像非常有效。

本文介绍

了二值图像和游程编码,并利用

Matlab

语言实现了二值图像的游程编码及解码。

三、实验原理

读入图象—

>

二值转换—

>

游程编码(压缩)—

>

恢复原图象

3.1

二值转换

所谓二值图像

,

就是指图像上的所有像素点的灰度值只用两种可能,

不为

0

就为

1

也就是整个图像呈现出明显的黑白效果。

3.2

游程编码及其原理

又称“运行长度编码”或“行程编码”,是一种统计编码,该编码属于无损压缩编码

对于二值图有效。

行程编码的基本原理是:用一个符号值或串长代替具有相同值的连续符号(连续

符号构成了一段连续的“行程”。行程编码因此而得名)

,使符号长度少于原始数据的

长度。

据进行编码时,沿一定方向排列的具有相同灰度值的像素可看成是连续符号,用

字串代替这些连续符号,可大幅度减少数据量。

行程编码分为定长行程编码和不定长行程编码两种类型。行程编码是连续精确的

编码,

在传输过程中,如果其中一位符号发生错误,即可影响整个编码序列,使行程编

码无法还原回原始数据。

3.3

游程编码算法

一般游程编码有两种算法

第一种:使用

1

的起始位置和

1

的游程长度

第二种:只使用游程长度,如果第一个编码值为

0

,则表示游程长度编码是从

0

像素的

长度开始。

两种方法各有优缺点:第一种存储比第二种困难,因此编程也比较复杂。而第二种需要

知道第一个像素值,故压缩编码算法中需给出所读出的图的第一个像素值。

此次试验中采用第一种算法。算法举例图示

压缩后输出为:

(2,2)(6,3)(13,6)(20,1)(4,6)(11,10)(1,5)(11,1)(17,4)

游程编码用matlab实现代码_matlab游程编码相关推荐

  1. 游程编码用matlab实现代码_二值图像游程编码matlab代码

    >> image1=imread('D:\Program Files\MATLAB\R2012a\bin\D.jpg'); % 读入图像 imshow(image1); % 显示原图像 & ...

  2. hilbert曲线序编码matlab,Hilbert曲线扫描矩阵的生成算法及其MATLAB程序代码

    Hilbert曲线扫描矩阵的生成算法及其MATLAB程序代码 王笋,徐小双(华中科技大学控制科学与工程系,武汉 430074) 摘 要 Hilbert曲线是一种重要的图像处理工具,在图像处理,特别是图 ...

  3. 一种基于局部线性嵌入的半监督方法——半监督局部线性嵌入(SSLLE),MATLAB程序代码

    具体内容大家可以看一下参考文献的原文,这里附上我的自己编的MATLAB程序代码: % SSLLE算法 % [Y] = sslle(X,K,d,l,r) % X :data as D x N matri ...

  4. 尺度不变特征变换(SIFT算法)Matlab程序代码测试例子的说明(Lowe的代码)

    目前网络上可以找到的关于SIFT算法Matlab测试代码的资源就是: 1 加拿大University of British Columbia 大学计算机科学系教授 David G. Lowe发表于20 ...

  5. 3.正态分布概率模型下的最小错误率贝叶斯决策MATLAB程序代码

    一.题目: [题目]:已知三个类别分别为W1:[0,0]T,[2,1]T,[1,0]T; W2:[-1,1]T,[2,0]T,[-2,-1]T; W3:[0,-2]T,[0,-1]T,[1,-2]T. ...

  6. 通信天线建模与MATLAB仿真分析,通信天线建模与MATLAB仿真分析代码

    应用介绍 此项目是通信天线建模与MATLAB仿真分析代码. 下面展示一部分代码: function [Z]=       impmet( EdgesTotal,TrianglesTotal,... E ...

  7. 齿轮-转子-轴承系统动力学matlab程序代码

    齿轮-转子-轴承系统动力学matlab程序代码 详询TB机械动力学超市 感谢关注 期待你的到来

  8. Matlab基础代码教程

    Matlab基础代码教程 第1部分:变量定义和基本运算: % 生成矩阵% 直接法a = [1,2,3;4,5,6;7,8,9];% 冒号一维矩阵 a = 开始:步长:结束,步长为1可省略b = 1:1 ...

  9. 齿轮系统动力学模型matlab程序代码

    齿轮系统动力学模型matlab程序代码, 详询TB机械动力学超市! 谢谢关注

  10. 如何写出三体的MATLAB程序-代码篇

    如何写出三体的MATLAB程序-代码篇 写在前面 在上文当中我们已经对三个物体之间的受力进行了分析,也说明了在时间 t t t下的加速度.速度和位移的计算方式. 本篇中将根据上一篇的公式来写出对应的代 ...

最新文章

  1. wps 2016 个人版 重新开始编号
  2. python绘制动态模拟图-Python 模拟生成动态产生验证码图片的方法
  3. 从Activity中返回数据
  4. mac安装win7之后鼠标失灵_排雷之后终于找到了解决mac安装Homebrew的报错
  5. JVM学习-StringTable字符串常量池
  6. 极简代码(八)—— binary activation function
  7. 死于决斗的数学天才伽罗瓦-人生的有限域
  8. char*赋值给std::string是深拷贝
  9. EFR32FG1开发教程1--点亮LED
  10. 计算机while语句知识点总结,while循环使用方法
  11. 【年终总结】你好2021,再见2020。
  12. java实验三正式报告
  13. php 数值转时间格式,php数值转换时间及时间转换数值用法示例
  14. Unity 知识点 - 3D游戏 - 视角跟随和键盘移动
  15. 征文评优中|小鱼再进化!OceanBase 4.1免费体验
  16. DTP加载/ODS激活时持续黄灯的解决办法
  17. 2019年云化国际发展趋势_2019年3种令人惊讶的云趋势-您首先在这里听到了
  18. 【QGIS入门实战精品教程】8.1:QGIS制作地图案例教程
  19. linux使用make命令编译错误,有关linux的make文件编译问题
  20. 【明解C语言】之指针初阶详解

热门文章

  1. linux ubuntu软件中心,Ubuntu 20.04 将Ubuntu软件中心切换到Snap商店
  2. 转:Delphi开发经验谈
  3. 5.2php小说网站源码,【PHP源码】杰奇小说源码V2.20仿《不朽文学网》原创小说网站系统程序(采集+支付+VIP)...
  4. oracle 应收 系统选项,Oracle财务系统应收账款模块操作手册
  5. UOS国产操作系统_三方源
  6. 太阳高度角计算题_【难点突破】太阳高度角与正午太阳高度角区别(附例题解析)...
  7. NetworkManager 替代工具 wicd
  8. java秒抢商品_Java秒杀系统实战系列~待秒杀商品列表与详情功能开发
  9. java连接Hbase操作数据库的全过程---搭建hbase数据库
  10. python银行系统-python实现简单银行管理系统