Wie kann ich ein Farbbild (RGB) in MATLAB spiegeln? Die fliplr
scheint nicht zu funktionieren, ohne dass die Farbinhalte verloren gehen, da es sich nur um 2D handelt.
Außerdem ist die imrotate
dürfen Farbbilder nicht gedreht werden.
Wie kann ich ein Farbbild (RGB) in MATLAB spiegeln? Die fliplr
scheint nicht zu funktionieren, ohne dass die Farbinhalte verloren gehen, da es sich nur um 2D handelt.
Außerdem ist die imrotate
dürfen Farbbilder nicht gedreht werden.
Die Funktion flipdim
funktioniert für N-D-Matrizen, während die Funktionen flipud
y fliplr
funktioniert nur für 2-D-Matrizen:
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
HINWEIS: In neueren Versionen von MATLAB (R2013b und neuer) ist die Funktion flip
wird nun empfohlen anstelle von flipdim
.
Ich weiß, es ist spät, aber da flipdim jetzt abgeschrieben ist, sind andere Antworten nicht mehr gültig. Sie könnten verwenden flip oder tun Sie es auf andere, intelligente Weise:
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)
Wie bereits erwähnt, kann imrotate sowohl mit Farb- als auch mit Graustufenbildern umgehen.
CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.
1 Stimmen
Ich habe keine Probleme beim Drehen von Farbbildern mit
imrotate
(R2013a).0 Stimmen
fliplr(img)
ist gleichbedeutend mitflip(img, 2)
. Und es geht nicht nur um 2D-Arrays. Für mehrdimensionale Arrays,fliplr
auf den von der ersten und zweiten Dimension gebildeten Ebenen arbeitet.