二值图像游程编码算法的Matlab实现
实验源程序以及相关结果如下:
>> image1=imread('C:\\Program Files\\MATLAB71\\work\\1\\girl.jpg'); %读入图像 >> imshow(image1); %显示原图像
>> % 以下程序是将原图像转换为二值图像
>> image2=image1(:); %将原始图像写成一维的数据并设为 image2 >> image2length=length(image2); % 计算image2的长度
>> for i=1:1:image2length % for 循环,目的在于转换为二值图像
If image2(i)>=127
image2(i)=255;
else image2(i)=0; end end
>> image3=reshape(image2,146,122); % 重建二维数组图像,并设为image3 >> figure,imshow(image3);
>> % 以下程序为对原图像进行游程编码,压缩 >> X=image3(:); %令X为新建的二值图像的一维数据组 >> x=1:1:length(X); % 显示游程编码之前的图像数据 >> figure,plot(x,X(x));
>> j=1;
>> image4(1)=1;
>> for z=1:1:(length(X)-1) % 游程编码程序段
if X(z)==X(z+1)
image4