您好,欢迎访问三七文档
当前位置:首页 > 医学/心理学 > 医学现状与发展 > 二值图像游程编码算法的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
本文标题:二值图像游程编码算法的Matlab实现
链接地址:https://www.777doc.com/doc-4883212 .html