?? compress1.m
字號:
%用 J(k,l)=I(k,l)-(I(k,l-1)/2+I(k-1,l)/4+I(k-1,l-1)/8+I(k-1,l+1)/8)進行預測編碼
I = rgb2gray(imread('lena.jpg'));
I2=I;
I=double(I);
fid = fopen('mydata1.dat','w');
[m n] = size(I);
J=ones(m,n);
J(1:m,1)=I(1:m,1);
J(1,1:n)=I(1,1:n);
J(1:m,n)=J(1:m,n);
J(m,1:n)=J(m,1:n);
for k=2:m-1
for l=2:n-1
J(k,l)=I(k,l)-(I(k,l-1)*A1(1)+I(k-1,l)*A1(2)+I(k-1,l-1)*A1(3)+I(k-1,l+1)*A1(4));
end
end
J=round(J);
cout=fwrite(fid,J,'int8');
cont=fwrite(fid,J,'int8');
cc=fclose(fid);
%預測編碼的解壓縮過程
fid=fopen('mydata1.dat','r');
I1=fread(fid,inf,'int8');
tt=1;
for l=1:n
for k=1:m
I(k,l) = I1(tt);
tt=tt+1;
end
end
I=double(I);
J=ones(m,n);
J(1:m,1)=I(1:m,1);
J(1,1:n)=I(1,1:n);
J(1:m,n)=I(1:m,n);
J(m,1:n)=I(m,1:n);
for k=2:m-1
for l=2:n-1
J(k,l)=I(k,l)+(J(k,l-1)*A1(1)+J(k-1,l)*A1(2)+J(k-1,l-1)*A1(3)+J(k-1,l+1)*A1(4));
end
end
cc=fclose(fid);
J=uint8(J);
subplot(1,2,1),imshow(I2);
subplot(1,2,2),imshow(J);
?? 快捷鍵說明
復制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -