29 lines
1.2 KiB
Matlab
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);
|