dct_compr.m
来自「Compress an decomprres DCT=Domain Transf」· M 代码 · 共 49 行
M
49 行
function [CR]= DCT_compr(filename, s_b, Mask)
Mask1=preg_mask(Mask, s_b);
%citesc imaginea
H=imread(filename);
figure(1)
subplot(211);imshow(H);title('Imagine initiala ')
H=f_addzero(H,s_b);
subplot(212);imshow(H);title('Imaginea pentru compresie')
%aplic DCT2 pt fiecare bloc
fun = @dct2;
J = blkproc(H,[s_b s_b],fun);
J = blkproc(J,[s_b s_b],'P1.*x', Mask);
%divid imaginea
[m,n]=size(H);
m=m/s_b;
n=n/s_b;
R=[];
C=[];
for i=1:m, R=[R s_b]; end;
for i=1:n, C=[C s_b]; end;
I = mat2cell(J, R, C);
h=1;
for j=1:n
for i=1:m
G{i,j}=int8(I{i,j});
Z(h,:)=zigzag(G{i,j});
h=h+1;
end
end
Z=Z';
V=Z(:);
V=V';
xC=cell(1,1);
xC{1}=V;
length(V)
y=Huff06(xC);
y=y';
[m, n] =size(H);
y=[s_b m/s_b n/s_b Mask1 y];
y=y';
length(y)
fid=fopen('project2.bin','wb');
fwrite(fid,y);
fclose(fid);
[m,n]=size(H);
CR=m*n/length(y);
CR
⌨️ 快捷键说明
复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?