matlab用游程编码压缩图像,matlab游程编码

matlab实现游程编码

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

一、实验目的

掌握游程编码,并用编程实现游程编码及解码。 二、实验引言

二值图像在图像分析中应用非常广泛,二值图像就是指只有黑白两个灰度级的图像,二值图像具有存储空间小,处理速度快,可以方便地对图像进行布尔逻辑运算等特点.更重要的是,在二值图像的基础上,还可以进一步对图像处理(编码等),获得该图像的一些几何特征或者其他更多特征。游程编码作为编码技术中常用的一种,对二值图像非常有效。本文介绍了二值图像和游程编码,并利用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)

1-107-png_6_0_0_0_0_0_0_892.979_1262.879-893-0-0-893.jpg

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值