Voltear imagen en MATLAB
-
Voltear una imagen usando la función
flip()
en MATLAB - Voltear una imagen usando la manipulación de matrices en MATLAB
Este tutorial discutirá cómo voltear una imagen verticalmente usando la función flip()
en Matlab.
Voltear una imagen usando la función flip()
en MATLAB
Las imágenes están compuestas por píxeles. Por ejemplo, si tiene una imagen de 200 por 200 píxeles, lo que significa que hay 200 píxeles en el eje vertical y 200 píxeles en el eje horizontal. Tenemos que leer y almacenar la imagen en Matlab usando la función imread()
. Se almacenará en un array, y cada elemento del array es el valor de cada píxel de la imagen. Para voltear la imagen verticalmente, necesitamos cambiar la posición de los píxeles. Por ejemplo, la última fila del array se convertirá en la primera fila y la primera que se convertirá en la última fila, y así sucesivamente. Podemos usar la función incorporada de Matlab flip()
para voltear una imagen o un array. Por ejemplo, volteemos una imagen usando la función flip()
en Matlab y mostrámoslas en el mismo gráfico usando las funciones subplot()
e imshow()
. Vea el código a continuación.
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')
Producción:
Como puede ver en la salida anterior, la imagen se invierte verticalmente. Si queremos voltear la imagen horizontalmente, tenemos que agregar un segundo argumento en la función flip()
, la dimensión del array flip(img, 2)
. Por ejemplo, en la salida anterior, hemos volteado el array en sentido de columna por eso la imagen se voltea verticalmente, pero si queremos voltear la imagen horizontalmente, tenemos que voltear el array en sentido de fila. En Matlab, la primera dimensión de un array es su columna y la segunda dimensión son sus filas. Entonces, para voltear la imagen, tenemos que pasar la dimensión como el segundo argumento en la función flip()
. Por defecto, la función flip()
invertirá el array usando la primera dimensión, que es la columna. Algunas imágenes también tienen una tercera dimensión que contiene los colores de la imagen. Si cambiamos la tercera dimensión, la imagen no cambiará, pero los colores de la imagen cambiarán o cambiarán.
Voltear una imagen usando la manipulación de matrices en MATLAB
También podemos voltear un array usando la manipulación de matrices en Matlab. Por ejemplo, si queremos voltear una imagen usando la manipulación de Matrix en lugar de la función flip()
, tenemos que cambiar la función flip(img)
en el código anterior con el código img(end:-1:1,:,:)
. En este código, hemos cambiado la posición de las entradas de las columnas y las otras dos dimensiones seguirán siendo las mismas. Hemos utilizado los dos puntos como segundo y tercer argumento para que la segunda y la tercera dimensión sigan siendo las mismas. También podemos cambiar la segunda dimensión. Por ejemplo, volteemos la imagen de arriba tanto vertical como horizontalmente usando la manipulación de matrices en Matlab. Vea el código a continuación.
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')
Producción:
Como puede ver en la salida anterior, la imagen se invierte tanto vertical como horizontalmente. Solo podemos voltear una dimensión a la vez usando la función flip()
, pero podemos voltear múltiples dimensiones usando la manipulación de matrices. También podemos voltear un array usando un bucle en Matlab.