Bild spiegeln in MATLAB
-
Spiegeln eines Bildes mit der Funktion
flip()
in MATLAB - Spiegeln eines Bildes mit Matrixmanipulation in MATLAB
In diesem Tutorial wird das vertikale Spiegeln eines Bildes mit der Funktion flip()
in Matlab erläutert.
Spiegeln eines Bildes mit der Funktion flip()
in MATLAB
Bilder bestehen aus Pixeln. Wenn Sie beispielsweise ein 200 x 200 Pixel großes Bild haben, was bedeutet, dass sich 200 Pixel auf der vertikalen Achse und 200 Pixel auf der horizontalen Achse befinden. Wir müssen das Bild mit der Funktion imread()
in Matlab lesen und speichern. Es wird in einer Matrix gespeichert, und jedes Element der Matrix ist der Wert jedes Pixels des Bildes. Um das Bild vertikal zu spiegeln, müssen wir die Position der Pixel ändern. Zum Beispiel wird die letzte Zeile der Matrix die erste Zeile und die erste, die die letzte Zeile wird, und so weiter. Wir können die in Matlab eingebaute Funktion flip()
verwenden, um ein Bild oder eine Matrix umzudrehen. Lassen Sie uns zum Beispiel ein Bild mit der Funktion flip()
in Matlab umdrehen und mit den Funktionen subplot()
und imshow()
auf demselben Plot anzeigen. Siehe den Code unten.
img = imread('cat.jpg');
img2 = flip(img);
subplot(1,2,1)
imshow(img)
title('Original Image')
subplot(1,2,2)
imshow(img2)
title('Flipped Image')
Ausgabe:
Wie Sie in der obigen Ausgabe sehen können, wird das Bild vertikal gespiegelt. Wenn wir das Bild horizontal spiegeln wollen, müssen wir in der Funktion flip()
ein zweites Argument hinzufügen, die Dimension des matrixartigen flip(img, 2)
. In der obigen Ausgabe haben wir beispielsweise die Matrix spaltenweise gespiegelt, weshalb das Bild vertikal gespiegelt wird, aber wenn wir das Bild horizontal spiegeln möchten, müssen wir die Matrix zeilenweise spiegeln. In Matlab ist die erste Dimension einer Matrix ihre Spalte und die zweite Dimension ihre Zeilen. Um das Bild umzudrehen, müssen wir die Dimension als zweites Argument in der Funktion flip()
übergeben. Standardmäßig dreht die Funktion flip()
die Matrix mit der ersten Dimension, der Spalte, um. Einige Bilder haben auch eine dritte Dimension, die die Farben im Bild enthält. Wenn wir die dritte Dimension spiegeln, wird das Bild nicht gespiegelt, aber die Farben des Bildes werden gespiegelt oder geändert.
Spiegeln eines Bildes mit Matrixmanipulation in MATLAB
Wir können eine Matrix auch mit der Matrix-Manipulation in Matlab umdrehen. Wenn wir zum Beispiel ein Bild mit Matrix-Manipulation anstelle der Funktion flip()
umdrehen möchten, müssen wir die Funktion flip(img)
im obigen Code durch den Code img(end:-1:1,:,:)
ersetzen. In diesem Code haben wir die Position der Spalteneinträge geändert und die anderen beiden Dimensionen bleiben gleich. Wir haben den Doppelpunkt als zweites und drittes Argument verwendet, damit die zweite und dritte Dimension gleich bleiben. Wir können auch die zweite Dimension ändern. Lassen Sie uns zum Beispiel das obige Bild sowohl vertikal als auch horizontal spiegeln, indem wir die Matrixmanipulation in Matlab verwenden. Siehe den Code unten.
img = imread('cat.jpg');
img2 = img(end:-1:1,end:-1:1,:);
subplot(1,2,1)
imshow(img)
title('Original Image')
subplot(1,2,2)
imshow(img2)
title('Flipped Image')
Ausgabe:
Wie Sie in der obigen Ausgabe sehen können, wird das Bild sowohl vertikal als auch horizontal gespiegelt. Mit der Funktion flip()
können wir immer nur eine Dimension spiegeln, aber mit der Matrixmanipulation können wir mehrere Dimensionen spiegeln. Wir können eine Matrix auch mit einer Schleife in Matlab umdrehen.