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

29 lines
1.2 KiB
Matlab

function affichage_3D(I_gauche,points_gauche_apparies,points_3D,t,R,numero_figure)
% Récupération de la couleur des points 3D :
[nb_lignes_gauche,nb_colonnes_gauche,nb_canaux_gauche] = size(I_gauche);
nb_pixels_gauche = nb_lignes_gauche*nb_colonnes_gauche;
couleurs_image_gauche = reshape(I_gauche,[nb_pixels_gauche,nb_canaux_gauche]);
i_points_gauche_apparies = round(points_gauche_apparies(:,1));
j_points_gauche_apparies = round(points_gauche_apparies(:,2));
indices_couleurs = sub2ind([nb_lignes_gauche,nb_colonnes_gauche],j_points_gauche_apparies,i_points_gauche_apparies);
couleurs_3D = couleurs_image_gauche(indices_couleurs,:);
% Affichage des caméras :
taille_camera = 0.2;
if nargin == 6
subplot(2,2,numero_figure);
end
plotCamera('Size',taille_camera,'Color','r','Label','1','Opacity',0);
hold on;
grid on;
position = single(-R'*t);
orientation = single(R');
absPose = rigidtform3d(orientation,position);
plotCamera('AbsolutePose',absPose,'Size',taille_camera,'Color','b','Label','2','Opacity',0);
axis off
% Création et affichage du nuage de points 3D :
nuage_points_3D = pointCloud(points_3D,'Color',couleurs_3D);
pcshow(nuage_points_3D,'VerticalAxis','y','VerticalAxisDir','down','MarkerSize',45);