2017-09-15 2 views
0

Je suis en train de tracer 3 images côte à côte à l'aide de Matlab subplot:colorbar redimensionne les intrigues secondaires

maxValue = 9; 
minValue = 5; 

figure(1) 
subplot(1,3,1); 
imshow(im1); 
axis equal; 

subplot(1,3,2); 
imagesc(im2);colorbar; 
caxis([minValue maxValue]) 
axis equal; 

subplot(1,3,3); 
imagesc(im3);colorbar; 
caxis([minValue maxValue]) 
axis equal; 

mais le résultat ressemble à ceci:

results

Apparemment, le colorbar est redimensionner l'image. Comment puis-je faire les trois images de la même taille et la barre de couleur correspond à la taille de l'image?

Répondre

2

Votre image est redimensionnée pour conserver ses proportions en fonction de l'espace disponible.
Utilisez axis normal; pour subplot(1,3,1) au lieu de axis equal.
Vous devrez peut-être également agrandir la fenêtre de la figure.


Pour im1 = imread('peppers.png');, le résultat est:

output

0

Voici ce que je fini par faire:

fig = figure(1); 
set(fig, 'Position', [52 529 1869 445]); % Resize the image 
subplot(1,3,1); % Add a subplot 
subaxis(1,3,1, 'Spacing', 0.03, 'Padding', 0, 'Margin', 0); % Remove whitespace from subplot 
imshow(im); 
axis equal; % Use undistorted images 


subplot(1,3,2); 
subaxis(1,3,2, 'Spacing', 0.03, 'Padding', 0, 'Margin', 0); 
imagesc(depth_gt);colorbar; 
caxis([minValue maxValue]) 
axis equal; 


subplot(1,3,3); 
subaxis(1,3,3, 'Spacing', 0.03, 'Padding', 0, 'Margin', 0); 
imagesc(depth_pred);colorbar; 
caxis([minValue maxValue]) 
axis equal; 

Vous pouvez obtenir cette 'position' mon redimensionnement manuellement image, puis en imprimant la sortie de fig dans le terminal de commande Matlab