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))
-----