Cambio de tamaño de imagen en MATLAB

Ammar Ali 20 enero 2022
Cambio de tamaño de imagen en MATLAB

Este tutorial discutirá el cambio de tamaño de una imagen usando la función imresize() en Matlab.

Cambiar el tamaño de una imagen usando la función imresize() en MATLAB

Podemos usar la función imresize() para cambiar el tamaño de las imágenes en Matlab. Esta función cambia el tamaño de las imágenes aumentando o disminuyendo sus píxeles. Por ejemplo, si cambiamos el tamaño de una imagen dos veces el tamaño de 100 por 100, entonces su tamaño final será de 200 por 200. Esta función crea más píxeles utilizando los valores de píxeles que ya están presentes en el vecindario. Si queremos reducir el tamaño de la imagen, podemos utilizar un valor de escala de cambio de tamaño de menos de 1. En este caso, la función imresize() eliminará píxeles de la imagen en función del valor de cambio de tamaño. Si la escala de cambio de tamaño es 0,5, el píxel se convertirá en la mitad. El primer argumento es la imagen a redimensionar. Puede ser de tipo lógico, numérico y categórico, pero los valores numéricos deben ser reales. El segundo argumento es la escala, o el factor de cambio de tamaño, y debe ser un número positivo. Por ejemplo, leamos una imagen usando la función imread() y cambiemos su tamaño usando la función imresize(), y luego tracemos ambas usando la función imshow(). Vea el código a continuación.

clc
RGB = imread('cat.jpg');
RI = imresize(RGB,10);
figure
imshow(RGB)
figure
imshow(RI)

Producción:

cambiar el tamaño de la imagen usando la función imresize

La imagen de la izquierda es la imagen original en la salida y la imagen de la derecha es la imagen redimensionada. También puede verificar el tamaño de la variable en la que se almacenan las dos imágenes de salida, y será diez veces mayor que el tamaño original. Si la imagen contiene más de dos dimensiones, la función imresize() solo cambiará el tamaño de las dos primeras dimensiones, y las demás dimensiones permanecerán iguales. Por ejemplo, en el caso del código anterior, si observa el espacio de trabajo en Matlab, sabrá que la tercera dimensión es la misma tanto en la imagen original como en la redimensionada. En lugar de usar un número entero como valor de escala de cambio de tamaño, podemos usar un vector para definir el tamaño de la imagen de salida como [100 100] para obtener una imagen de salida de tamaño 100 por 100. Por ejemplo, cambiemos el tamaño de la imagen de arriba para obtener una imagen de tamaño 100 por 100. Vea el código a continuación.

clc
RGB = imread('cat.jpg');
RI = imresize(RGB,[100 100]);
figure
imshow(RGB)
figure
imshow(RI)

Producción:

cambiar el tamaño de la imagen al tamaño deseado

La imagen de la izquierda es la imagen original en la salida y la imagen de la derecha es la imagen redimensionada. También puede ver el tamaño de la imagen de salida en la parte superior de la imagen de la derecha, que es 100 por 100. La tercera dimensión no se cambia porque contiene los valores de color presentes en la imagen. También podemos cambiar el tamaño de una imagen indexada usando la función imresize(). Una imagen indexada es diferente en comparación con una imagen RGB, está compuesta por un array 2D con datos de bytes almacenados en ella, y también podemos poner un tipo diferente de datos en ella como double, int16, etc. Una imagen RGB contiene el color como una tercera dimensión, pero la imagen indexada contiene color como un mapa de colores separado. Para cambiar el tamaño de una imagen indexada, tenemos que usar una segunda variable dentro de la función imresize(), que es el mapa de colores de la imagen de entrada, que podemos obtener usando una segunda salida de la función imread(). La función de cambio de tamaño nos dará una nueva matriz 2D y un nuevo mapa de colores. Para trazar una imagen indexada, tenemos que usar la matriz 2D y el mapa. Por ejemplo, leamos una imagen indexada y cambiemos su tamaño. Vea el código a continuación.

clc
[OI,map] = imread("corn.tif");
[RI,Nmap] = imresize(OI,map,2);
figure
imshow(OI,map)
figure
imshow(RI,Nmap)

Producción:

cambiar el tamaño de la imagen indexada

La imagen de la derecha es la imagen original en la salida y la imagen de la izquierda es la imagen redimensionada. También podemos cambiar el método de interpolación, que se utiliza para cambiar el tamaño de la imagen. El método predeterminado es bicúbico, pero podemos cambiarlo al más cercano o bilineal ingresando una cadena que contenga el nombre del nuevo método en la función imresize(). En el método de interpolación más cercano, al píxel de salida se le asigna el valor del píxel en el que se encuentra el punto. En el método de interpolación bilineal, al píxel de salida se le asigna un valor que es un promedio ponderado de píxeles en la vecindad más cercana de 2 por 2. En el método de interpolación bicúbica, al píxel de salida se le asigna un valor que es un promedio ponderado de píxeles en la vecindad de 4 por 4 más cercana.

Autor: Ammar Ali
Ammar Ali avatar Ammar Ali avatar

Hello! I am Ammar Ali, a programmer here to learn from experience, people, and docs, and create interesting and useful programming content. I mostly create content about Python, Matlab, and Microcontrollers like Arduino and PIC.

LinkedIn Facebook

Artículo relacionado - MATLAB Image