二值图像游程编码算法的Matlab实现

整理文档很辛苦,赏杯茶钱您下走!

免费阅读已结束,点击下载阅读编辑剩下 ...

阅读已结束,您可以下载文档离线阅读编辑

资源描述

二值图像游程编码算法的Matlab实现实验源程序以及相关结果如下:image1=imread('C:\ProgramFiles\MATLAB71\work\1\girl.jpg');%读入图像imshow(image1);%显示原图像%以下程序是将原图像转换为二值图像image2=image1(:);%将原始图像写成一维的数据并设为image2image2length=length(image2);%计算image2的长度fori=1:1:image2length%for循环,目的在于转换为二值图像Ifimage2(i)=127image2(i)=255;elseimage2(i)=0;endendimage3=reshape(image2,146,122);%重建二维数组图像,并设为image3figure,imshow(image3);%以下程序为对原图像进行游程编码,压缩X=image3(:);%令X为新建的二值图像的一维数据组x=1:1:length(X);%显示游程编码之前的图像数据figure,plot(x,X(x));j=1;image4(1)=1;forz=1:1:(length(X)-1)%游程编码程序段ifX(z)==X(z+1)image4(j)=image4(j)+1;elsedata(j)=X(z);%data(j)代表相应的像素数据j=j+1;image4(j)=1;endenddata(j)=X(length(X));%最后一个像素数据赋给dataimage4length=length(image4);%计算游程编码后的所占字节数,记为image4lengthy=1:1:image4length;%显示编码后数据信息figure,plot(y,image4(y));CR=image2length/image4length;%比较压缩前于压缩后的大小%下面程序是游程编码解压l=1;form=1:image4lengthforn=1:1:image4(m);rec_image(l)=data(m);l=l+1;endendu=1:1:length(rec_image);%查看解压后的图像数据figure,plot(u,rec_image(u));rec2_image=reshape(rec_image,146,122);%重建二维二维图像数组figure,imshow(rec2_image);%显示解压恢复后的图像通过matlab可以看出,程序运行过程中各个变量的值如下图:CR=12.084,说明该游程编码,压缩率为12.084

1 / 5
下载文档,编辑使用

©2015-2020 m.777doc.com 三七文档.

备案号:鲁ICP备2024069028号-1 客服联系 QQ:2149211541

×
保存成功