Comment retourner une image couleur (RGB) dans MATLAB? Le fliplr
ne semble pas fonctionner sans perdre le contenu de la couleur, car il ne traite que de la 2D.
De même, il est possible que imrotate
ne fasse pas pivoter les images couleur.
La fonction flipdim
fonctionnera pour les matrices N-D, tandis que les fonctions flipud
et fliplr
ne fonctionnent que pour les matrices 2D:
img = imread('peppers.png'); %# Load a sample image
imgMirror = flipdim(img,2); %# Flips the columns, making a mirror image
imgUpsideDown = flipdim(img,1); %# Flips the rows, making an upside-down image
REMARQUE: Dans les versions plus récentes de MATLAB (version R2013b et plus récente), la fonction flip
est désormais recommandée au lieu de flipdim
.
Un exemple:
I = imread('onion.png');
I2 = I(:,end:-1:1,:); %# horizontal flip
I3 = I(end:-1:1,:,:); %# vertical flip
I4 = I(end:-1:1,end:-1:1,:); %# horizontal+vertical flip
subplot(2,2,1), imshow(I)
subplot(2,2,2), imshow(I2)
subplot(2,2,3), imshow(I3)
subplot(2,2,4), imshow(I4)
imrotate
fait pivoter les images couleur B = IMROTATE (A, ANGLE) fait pivoter l’image A de ANGLE degrés en a dans le sens antihoraire autour de son point central.
Je sais que c'est tard, mais depuis que flipdim est maintenant amorti, les autres réponses ne sont plus valables. Vous pouvez utiliser flip , ou le faire de manière intelligente:
I = imread('onion.png');
% flip left-right, or up-down:
Iflipud = flip(I, 1)
Ifliplr = flip(I, 2)
% or:
Iflipud = I(size(I,1):-1:1,:,:);
Ifliplr = I(:,size(I,1):-1:1,:);
% flip both left-right, and up-down, stupid way:
Iflipboth = I(size(I,1):-1:1,size(I,1):-1:1,:);
% flip both left-right, and up-down, smart way:):
Iflipboth = imrotate(I, 180)
Comme déjà indiqué, imrotate traite à la fois des images couleur et des niveaux de gris.