rle_1_c.m

来自「compression with rle algorithm」· M 代码 · 共 53 行

M
53
字号
function [CR] = RLE_1_c(filename)

A = imread('im_4_woman_blonde.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
 

⌨️ 快捷键说明

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