Mostrar una imagen en la ventana de figura
Visión general
La función imshow es adecuada para la visualización básica de imágenes 2D. A partir de la versión R2024b, también se pueden mostrar imágenes 2D utilizando la función imageshow. Si bien ambas funciones son capaces de mostrar imágenes en una ventana de figura, existen algunas diferencias clave que hacen que cada una sea adecuada para aplicaciones diferentes.
La función imshow tiene las siguientes ventajas:
Muestra imágenes dentro de un eje que se puede personalizar utilizando las funciones gráficas de MATLAB®. Por ejemplo, muestre varias imágenes juntas utilizando
tiledlayouto añada anotaciones como un título, etiquetas en los ejes y consejos sobre datos.Muestra imágenes en una ventana de figura con un menú predeterminado y una barra de herramientas que permite realizar acciones comunes como guardar o imprimir imágenes desde la figura.
La función imageshow tiene las siguientes ventajas:
Está diseñada para mejorar la calidad de renderizado, acelerar el rendimiento y suavizar las interacciones del zoom y de la vista panorámica, especialmente para imágenes medianas y grandes y en MATLAB Online™.
Puede mostrar datos de imágenes almacenados como un arreglo numérico o una imagen dividida en bloques, incluidas las imágenes respaldadas por archivos que son demasiado grandes para caber en la memoria.
La imagen que se muestra rellena la ventana de figura a medida que se amplía el zoom utilizando una parte más grande de la pantalla en comparación con
imshow.
Nota
Cuando se muestran imágenes en Live Editor, la figura se integra en la salida del script en vivo. Para abrir la figura en una ventana independiente, haga clic en el botón Open in figure window
de la esquina superior derecha de la salida de Live Editor.
Mostrar imágenes utilizando imshow
Lea una imagen en el área de trabajo y muéstrela utilizando la función imshow.
moon = imread("moon.tif");
imshow(moon)
También puede especificar la imagen que desea mostrar como un nombre de archivo. Sin embargo, tenga en cuenta que esta sintaxis no almacena los datos de imagen en el área de trabajo. Si desea traer la imagen al espacio de trabajo, debe utilizar la función getimage, que recupera los datos de imagen del objeto de imagen actual.
imshow("moon.tif");Para obtener más información sobre el uso de imshow para mostrar los distintos tipos de imágenes que admite la toolbox, consulte Display Different Image Types.
Especificar el aumento inicial de una imagen
De forma predeterminada, imshow intenta mostrar una imagen en su totalidad con un aumento del 100% (un píxel de la pantalla por cada píxel de la imagen). Sin embargo, si una imagen es demasiado grande para caber en una ventana de figura en la pantalla al 100% de aumento, imshow la escala para que quepa en la pantalla y emite un mensaje de advertencia.
Para anular el comportamiento de aumento inicial predeterminado de una llamada concreta a imshow, especifique el parámetro InitialMagnification. Por ejemplo, para ver una imagen con un aumento del 150%, utilice el siguiente código.
pout = imread("pout.tif");
imshow(pout,InitialMagnification=150)imshow intenta respetar el aumento que especifique. Sin embargo, si la imagen no cabe en la pantalla con el aumento especificado, imshow ajusta la imagen para que quepa. También puede especificar "fit" como valor de aumento inicial. En este caso, imshow escala la imagen para ajustarla al tamaño de la ventana de figura.
Para cambiar el comportamiento del aumento inicial predeterminado de imshow, establezca la preferencia de la toolbox ImshowInitialMagnification. Para establecer la preferencia, abra el cuadro de diálogo de preferencias de Image Processing Toolbox™ llamando a iptprefs o, en la pestaña Home de MATLAB, en la sección Environment, haga clic en
Preferences.
Cuando imshow escala una imagen, utiliza la interpolación para determinar los valores de los píxeles de la pantalla que no corresponden directamente a elementos de la matriz de la imagen. De forma predeterminada, imshow utiliza la interpolación del vecino más cercano, pero se puede especificar el uso de la interpolación bilineal definiendo el argumento nombre-valor Interpolation.
Controlar la apariencia de la figura
De forma predeterminada, cuando imshow muestra una imagen en una figura, la rodea con un borde gris. Puede cambiar este valor predeterminado y eliminar el borde mediante el argumento de nombre-valor "Border", como se muestra en el siguiente ejemplo.
imshow("moon.tif",Border="tight")
La siguiente figura muestra la misma imagen con y sin borde.

El argumento "Border" solo afecta a la imagen que se muestra en la llamada a imshow. Si desea que todas las imágenes que muestre con imshow aparezcan sin el borde gris, establezca la preferencia "ImshowBorder" de Image Processing Toolbox en "tight". También puede utilizar las preferencias para incluir ejes visibles en la figura. Para obtener más información sobre las preferencias, consulte iptprefs.
Mostrar imágenes utilizando imageshow
Este ejemplo lee la misma imagen en el área de trabajo y luego la muestra en una ventana de figura mediante la función imageshow.
moon = imread("moon.tif");
imageshow(moon)
Como sucede con imshow, también puede especificar la imagen que desea mostrar como un nombre de archivo.
imageshow("moon.tif");La función imageshow muestra la imagen en una ventana del visor. El nivel del zoom de la imagen se muestra en la esquina inferior derecha del visor. Para incrementar el tamaño de la imagen que se muestra, maximice o arrastre manualmente el borde del visor para ampliar la ventana. Si la amplía utilizando la rueda de desplazamiento del ratón o el botón de zoom de la barra de herramientas, la imagen se expandirá hasta rellenar la ventana del visor. La barra de escala se actualiza para mostrar el nivel de zoom actual.

Para optimizar la calidad de renderizado en los niveles de zoom bajo y alto, el método de interpolación de la imagen cambiará automáticamente. En los niveles de zoom más bajos, cuando un píxel de los datos de imagen abarca menos de diez píxeles de la pantalla, la imagen se muestra utilizando una interpolación bilineal. Cuando un píxel de los datos de imagen abarca más de diez píxeles de la pantalla, la imagen se muestra utilizando la interpolación del vecino más cercano. Puede cambiar la interpolación manualmente utilizando el argumento nombre-valor Interpolation.
