image1=imread('picture.jpg'); %读入图像
imshow(image1); %显示原图像
J=rgb2gray(image1);
% 以下程序是将原图像转换为二值图像
image2=J(:); %将原始图像写成一维的数据并设为 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,532,800); % 重建二维数组图像,并设为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(j)=image4(j)+1;
else
data(j)=X(z); % data(j)代表相应的像素数据
j=j+1;
image4(j)