TP-probleme-inverse-3D/TP3/exercice_1.m
2023-06-25 16:38:01 +02:00

46 lines
1.3 KiB
Matlab

clear;
close all;
load lapin;
valeurs_z = 1.5:0.002:2.5;
nb_images = size(I,3);
% Masque de l'image de référence :
k_ref = 1; % Indice de l'image de référence
masque_ref = masque(:,:,k_ref); % Masque de l'image de référence
% Affichage des images :
figure('Name','Images');
for k = 1:nb_images
subplot(2,ceil(nb_images/2),k);
imagesc(I(:,:,k));
colormap gray;
axis equal;
axis off;
if k<k_ref
title(['Image I_{' num2str(k) '}'],'FontSize',15);
elseif k==k_ref
title('Image I_{ref}','FontSize',15);
else
title(['Image I_{' num2str(k-1) '}'],'FontSize',15);
end
end
drawnow;
% Calcul de l'erreur de reprojection :
erreur_reprojection = MVS(I,k_ref,masque_ref,K,R,t,valeurs_z);
% Affichage de l'erreur de reprojection en fonction de la profondeur :
figure('Name','Erreur de reprojection');
imagesc(erreur_reprojection);
colormap gray;
xlabel('Valeur de la profondeur','FontSize',20);
ylabel('Indice du pixel','FontSize',20);
% input('Tapez Entree pour afficher le relief reconstruit !');
% Affichage de la reconstruction 3D :
figure('Name','Reconstruction 3D');
[~,indices_min] = min(erreur_reprojection,[],2);
z = transpose(valeurs_z(indices_min));
affichage_surface(masque_ref,K,z);