资源简介

利用matlab实现图像的行程编码,内含主函数和编码函数,运行通过且能够给出压缩比、判断是否失真。

资源截图

代码片段和文件信息

%%%RLE.m
function [CRdistortion]=RLE(Xmap)      %CR是压缩率;distortion是编解码的失真
Image1=X(1:2401:240);      %X为输入图像
Image2=Image1‘;
image_1D=Image2(:);     %将原始图像写为一维的数据并设为image_1D

nx=length(image_1D);
run_len(1)=1;
j=1;
for i=1:1:nx-1;      %将image_1D所包含的像素进行比对
    if image_1D(i)==image_1D(i+1);      %run_len(j)记录相对应的重复次数
        run_len(j)=run_len(j)+1;
    else
        data(j)=image_1D(i);        %data(j)代表相对应的像素数据
        j=j+1;
        run_len(j)=1;
    end
end
data(j)=image_1D(nx);
r=1;
for j=1:length(run_len);        %此循环目的在于利用上述得到的重复次数与
                                %对应数据重建原始数据,以验证RLE为无失真编码
    for s=1:1:run_len(j);
        rec_1Dimag(r)=data(j);
        r=r+1;
    end
end
error=rec_1Dimag(:)-image_1D;
%distortion=norm(error2)
flag=0;
for i=1:nx-1;
    if(error(i)==0)
    else
        flag=flag+1;
    end
end
distortion=flag/nx
rec_1Dimag;
d=length(run_len);      %计算run_len所占字节数
CR=nx/(2*d);        %计算出全部数据经处理后是压缩还是膨胀
% CR;
% distortion;
imshow(Image1map)
end


 属性            大小     日期    时间   名称
----------- ---------  ---------- -----  ----

     文件       3587  2018-03-19 15:02  RLE(MATLAB)\c.bmp

     文件      10647  2018-03-19 14:17  RLE(MATLAB)\lena.bmp

     文件       1156  2018-03-29 14:16  RLE(MATLAB)\RLE.m

     文件       1032  2018-03-21 17:04  RLE(MATLAB)\RLE2.m

     文件        720  2018-03-21 17:11  RLE(MATLAB)\RLE2_main.m

     文件        294  2018-03-29 14:16  RLE(MATLAB)\RLE_main.m

     目录          0  2018-03-21 18:23  RLE(MATLAB)

----------- ---------  ---------- -----  ----

                17436                    7


评论

共有 条评论