45 lines
1.8 KiB
Matlab
45 lines
1.8 KiB
Matlab
|
|
% TP Codages JPEG et MPEG-2 - 3SN-M - 2022
|
|
|
|
%--------------------------------------------------------------------------
|
|
% Exercie_1 : Test du codage entropique
|
|
%--------------------------------------------------------------------------
|
|
% Fonction a coder/utiliser : CodageEntropique.m
|
|
%--------------------------------------------------------------------------
|
|
|
|
clear
|
|
close all
|
|
clc
|
|
taille_ecran = get(0,'ScreenSize');
|
|
L = taille_ecran(3);
|
|
H = taille_ecran(4);
|
|
figure('Name','Test du codage entropique',...
|
|
'Position',[0.2*L,0.05*H,0.6*L,0.7*H]);
|
|
|
|
%--------------------------------------------------------------------------
|
|
|
|
% Chargement des images de test
|
|
I_Ent_1 = load('Donnees_TP_MPEG-2.mat').I_Ent_1;
|
|
I_Ent_2 = load('Donnees_TP_MPEG-2.mat').I_Ent_2;
|
|
% Calcul de l'entropie avec la fonction Matlab
|
|
% (seulement pour une image en niveaux de gris)
|
|
H_ref = entropy(I_Ent_1);
|
|
% Calcul de l'entropie generalisee pour n'importe quel vecteur
|
|
[P,H_v] = CodageEntropique(I_Ent_1(:));
|
|
% Verification de la bonne valeur de l'entropie
|
|
if (abs(H_v - H_ref) < 1e-10 && abs(P - 26.9471949267) < 1e-10)
|
|
imagesc(I_Ent_1)
|
|
colormap gray
|
|
axis image off
|
|
title({'Le calcul d''entropie est bon :' ...
|
|
['Entropie = ' num2str(H_v,'%.3g') ' bits/pixel (attendue : ' num2str(H_ref,'%.3g') ' bits/pixel)'] ...
|
|
['Poids de l''image = ' num2str(P,'%.3g') ' ko (attendu : ' num2str(26.9) ' ko)']})
|
|
else
|
|
imagesc(I_Ent_2)
|
|
colormap gray
|
|
axis image off
|
|
title({'Le codage entropique n''est pas bon :' ...
|
|
['Entropie = ' num2str(H_v,'%.3g') ' bits/pixel (attendue : ' num2str(H_ref,'%.3g') ' bits/pixel)'] ...
|
|
['Poids de l''image = ' num2str(P,'%.3g') ' ko (attendu : ' num2str(26.9) ' ko)']})
|
|
end
|