-
Notifications
You must be signed in to change notification settings - Fork 0
/
projection.m
50 lines (40 loc) · 1.37 KB
/
projection.m
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
clear all;
close all;
load eigenfaces;
h = figure('Position',[0,0,0.67*L,0.67*H]);
figure('Name','RMSE en fonction du nombre de composantes principales','Position',[0.67*L,0,0.33*L,0.3*L]);
% Calcul de la RMSE entre images originales et images reconstruites :
RMSE_max = 0;
% Composantes principales des données d'apprentissage
%la matrice U representant la base des vecteurs propres de sigma
U = vecteurs_propres;
C = X_centre*U;
for q = 0:n-1
Uq = U(:,1:q); % q premières eigenfaces
Cq = C(:,1:q); % q premières composantes principales
X_reconstruit = (Uq*Cq' + individu_moyen')';
figure(1);
set(h,'Name',['Utilisation des ' num2str(q) ' premieres composantes principales']);
colormap gray;
hold off;
for k = 1:n
subplot(nb_personnes_base, nb_postures_base,k);
img = reshape(X_reconstruit(k,:), nb_lignes, nb_colonnes);
imagesc(img);
hold on;
axis image;
axis off;
end
figure(2);
hold on;
RMSE = sqrt(mean2((X-X_reconstruit).^2)); %mean2 : moyenne de toutes les valeur d'une matrice
RMSE_max = max(RMSE,RMSE_max);
plot(q,RMSE,'r+','MarkerSize',8,'LineWidth',2);
axis([0, n-1, 0, 1.1*RMSE_max]);
set(gca,'FontSize',20);
hx = xlabel('$q$','FontSize',30);
set(hx,'Interpreter','Latex');
ylabel('RMSE','FontSize',30);
pause(0.01);
end
save projection;