salut tout le monde
j'ai fait la DCT sur une image et la quantification mais a la restitution de cette image le PSNR est très faible veut dire l'image est floue je voudrais des matrices de quantification qui me permets un compression normale PSNR >30 voila mon code
Code:
clear all
close all
I = imread('cameraman.tif');
figure(1)
imshow(I)
title('image original')
I = im2double(I);
T = dctmtx(8);
dct = @(x)T * x * T'; %anonymous function dct
 B = blkproc(I,[8 8],dct);
mask = [2   3   4   5   6   7   8   9
        3   4   5   6   7   8   9  10
        4   5   6   7   8   9  10  11
        5   6   7   8   9  10  11  12
        6   7   8   9  10  11  12  13 
        7   8   9  10  11  12  13  14 
        8   9  10  11  12  13  14  15
        9  10  11  12  13  14  15  16
];




QQ=@(x)round(x./mask);
B2= blkproc(B,[8 8],QQ);
ff=@(x)(x.*mask);
B3= blkproc(B2,[8 8],ff);
%*********
invdct = @(x)T' * x * T;
I2 = blkproc(B3,[8 8],invdct);
figure(2)
imshow(I2)
title('image invdct')
%***************PSNR*********************
E=I-I2;
E=E.^2;
SUM=sum (sum(E));
EQM=SUM/(size(I,1)*size(I,2))
PSNR=10*(log(1^2/EQM)/log(10))