⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 dct_decompr.m

📁 Compress an decomprres DCT=Domain Transform Coding for image.
💻 M
字号:
clear all;
 Mask = [1/16 1/11 1/10 1/16 1/24 1/40 1/51 1/61;
        1/12 1/12 1/14 1/19 1/26 1/58 1/60 1/55;
        1/14 1/13 1/16 1/24 1/40 1/57 1/69 1/56;
        1/14 1/17 1/22 1/29 1/51 1/87 1/80 1/62;
        1/18 1/22 1/37 1/56 1/68 1/109 1/103 1/77;
        1/24 1/35 1/55 1/64 1/81 1/104 1/113 1/92;
        1/49 1/64 1/78 1/87 1/103 1/121 1/120 1/101;
        1/72 1/92 1/95 1/98 1/112 1/100 1/103 1/99];

% Mask = [  3,   2,   2,   3,   5,   8,  10,  12;
%           2,   2,   3,   4,   5,  12,  12,  11;
%           3,   3,   3,   5,   8,  11,  14,  11;
%           3,   3,   4,   6,  10,  17,  16,  12;
%           4,   4,   7,  11,  14,  22,  21,  15;
%           5,   7,  11,  13,  16,  12,  23,  18;
%          10,  13,  16,  17,  21,  24,  24,  21;
%          14,  18,  19,  20,  22,  20,  20,  20];


     
fid = fopen('project2.bin', 'rb');
y = fread(fid);
fclose(fid);
y = y';
% Structura lui y: y=[s_b m/s_b n/s_b Mask1 y];
% s_b = 1 octet
% m/s_b = 1 octet
% n/s_b = 1 octet
% Mask1 = 64 octeti

% Extragere info din stream
s_b = y(1);
m = y(2) * s_b;
n = y(3) * s_b;
Mask1 = zeros([1 64]);
for i=1:64
    Mask1(i) = y(i+3);
end;
y2 = zeros([1 length(y)-67]);
for i=68:length(y)
    y2(i-67) = y(i);
end;
y = y2';

% Decodare huffman
xC = Huff06(y);

V = xC{1};
Z = reshape(V, 64, length(V)/64);
Z = Z';
m_mic = m / s_b;
n_mic = n / s_b;
R=[];
C=[];
for i=1:m_mic
    R = [R s_b];
end;
for i=1:n_mic
    C = [C s_b];
end;
J = zeros([m n]);
I = mat2cell(J, R, C);
h = 1;
for j=1:n_mic
    for i=1:m_mic
        I{i, j} = izigzag(Z(h,:), 8, 8);
        h = h + 1;
    end;
end;
J = cell2mat(I);
J = blkproc(J,[s_b s_b],'P1.*x', Mask);
fun = @idct2;
H = blkproc(J,[s_b s_b],fun);
imshow(H);

ImI = imread('im_17_kodim15.tif');
ImI = double(ImI);
[h,w]=size(ImI);
dif=abs(ImI-H);
s=sum(dif(:).^2);
mae=mean(dif(:));
psnr=10*log10((h-1)*(w-1)*(max(max(ImI))^2)/s);
psnr

⌨️ 快捷键说明

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