rle_1_c.asv

来自「RLE=Run Lenght Coding for image.」· ASV 代码 · 共 55 行

ASV
55
字号
function [CR] = RLE_1_c(filename)

A = imread('im_17_kodim15.tif'); % 8 bit gray; 256x256 
 colormap(gray);
% A =  [100  80  80  91  91 255 100  10;
%       10  10  11 123  10  10  11  10;  
 %      255 255 255 255 100 100 100  10;   
 %      100  80  80  91  91 255 100  10;
   %    10  10  11 123  10  10  11  10;  
%        255 255 255 255 100 100 100  10]; 

A=f_addzero(A,4);
figure(1)
imshow(A);title('Original image')
[m,n] = size(A)

B=[]; %reprezinta imginea facuta ca vector
C=[]; %reprezinta vectorul comprimat
B=zigzag(A);
B=[B 0];
for i=1:m*n
    if B(i)==255, B(i)=254;
    end
end
h = 0; % contor de pixeli de aceesi valoare
i=1;
 while i<m*n+1
    i=i+1
    if B(i-1)==B(i),
        h=1;
        C=[C 255];
        while ((B(i-1)==B(i)) && (i<m*n+1)),
            i=i+1;
            h=h+1;
            if h == 254
                C=[C h B(i-1) 255];
                h=0;
            end
        end
        C=[C h];
        C=[C B(i-1)]; 
    else C=[C B(i-1)];
    end
 end
C=[m/4 n/4 C];
 
fid=fopen('project1RLE.bin','wb');
fwrite(fid,C);
fclose(fid);
CR=m*n/length(C);
CR
dist=mean(b(:)-bq(:)).^2;
PSNR=10*log10(255.^2/dis)
 

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?