Main Content

La traducción de esta página aún no se ha actualizado a la versión más reciente. Haga clic aquí para ver la última versión en inglés.

imshow

Mostrar una imagen

Descripción

ejemplo

imshow(I) muestra la imagen en escala de grises I en una figura. imshow utiliza el intervalo de visualización predeterminado para el tipo de datos de la imagen y optimiza la figura, los ejes y las propiedades del objeto de imagen para su visualización.

imshow(I,[low high]) muestra la imagen I en escala de grises, especificando el intervalo de visualización como un vector de dos elementos, [low high]. Para obtener más información, consulte el argumento DisplayRange.

ejemplo

imshow(I,[]) muestra la imagen I en escala de grises, escalando la visualización en función del intervalo de valores de los píxeles en I. imshow utiliza [min(I(:)) max(I(:))] como intervalo de visualización. imshow muestra el valor mínimo en I como negro y el valor máximo como blanco. Para obtener más información, consulte el argumento DisplayRange.

ejemplo

imshow(RGB) muestra la imagen RGB en color verdadero en una figura.

ejemplo

imshow(BW) muestra la imagen binaria BW en una figura. Para las imágenes binarias, imshow muestra los píxeles con el valor 0 (cero) como negro y 1 como blanco.

ejemplo

imshow(X,map) muestra la imagen indexada X con el mapa de colores map.

ejemplo

imshow(filename) muestra la imagen almacenada en el archivo gráfico especificado por filename.

imshow(___,Name=Value) muestra una imagen, utilizando argumentos de nombre-valor para controlar aspectos de la operación.

himage = imshow(___) devuelve el objeto de imagen creado por imshow.

ejemplo

imshow(Im,R) muestra la imagen Im con el objeto de referencia espacial 2D asociado R. El primer argumento Im puede ser una imagen en escala de grises I, una imagen en color verdadero RGB, una imagen binaria BW o el nombre del archivo filename para una imagen de uno de esos tipos.

imshow(X,R,map) muestra la imagen indexada X con el objeto de referencia espacial 2D asociado R y el mapa de colores map.

Ejemplos

contraer todo

Muestre una imagen RGB (color verdadero), en escala de grises, binaria o indexada utilizando la función imshow.

Mostrar una imagen RGB

Lea una imagen RGB de muestra, peppers.png, en el espacio de trabajo de MATLAB®.

rgbImage = imread("peppers.png");

Muestre la imagen RGB utilizando imshow.

imshow(rgbImage)

Figure contains an axes object. The axes object contains an object of type image.

Mostrar una imagen en escala de grises

Convierta la imagen RGB en una imagen en escala de grises, utilizando la función im2gray.

grayImage = im2gray(rgbImage);

Muestre la imagen en escala de grises utilizando imshow.

imshow(grayImage)

Figure contains an axes object. The axes object contains an object of type image.

Mostrar una imagen binaria

Convierte la imagen en escala de grises en una imagen binaria, mediante el uso de umbrales.

meanVal = mean(grayImage,"all");
binaryImage = grayImage >= meanVal;

Muestre la imagen binaria utilizando imshow.

imshow(binaryImage)

Figure contains an axes object. The axes object contains an object of type image.

Mostrar una imagen indexada

Lea una imagen indexada de muestra, corn.tif, en el espacio de trabajo de MATLAB.

[corn_indexed,map] = imread("corn.tif");

Muestre la imagen indexada utilizando imshow.

imshow(corn_indexed,map)

Figure contains an axes object. The axes object contains an object of type image.

Muestre una imagen guardada en un archivo.

filename = "peppers.png";
imshow(filename)

Figure contains an axes object. The axes object contains an object of type image.

Cargue una imagen de prueba volumétrica en escala de grises, mri.mat, en la variable del espacio de trabajo D. Elimine la dimensión única del volumen utilizando la función squeeze.

load("mri.mat");
vol = squeeze(D);

Seleccione un corte del centro del volumen. Muestre el corte utilizando el mapa de colores copper y escalando el intervalo de visualización al intervalo de valores de los píxeles.

sliceZ = vol(:,:,13);
imshow(sliceZ,[],Colormap=copper)

Figure contains an axes object. The axes object contains an object of type image.

Cambie el mapa de colores de la imagen utilizando la función colormap.

colormap(hot)

Figure contains an axes object. The axes object contains an object of type image.

Lea una imagen en color verdadero (RGB) en el espacio de trabajo. El tipo de datos de la imagen es uint8.

RGB = imread("peppers.png");

Extraiga el canal verde de la imagen. El canal verde es el segundo plano de color.

G = RGB(:,:,2);
imshow(G)

Figure contains an axes object. The axes object contains an object of type image.

Cree un filtro que detecte los bordes horizontales de la imagen.

filt = [-1 -1 -1; 0 0 0; 1 1 1];

Filtre el canal verde la imagen utilizando la función filter2. El resultado es una imagen de tipo de datos double con un valor mínimo de -422 y un valor máximo de 656. Los píxeles con una gran magnitud en la imagen filtrada indican bordes intensos.

edgeG = filter2(filt,G);

Muestre la imagen filtrada utilizando imshow con el intervalo de visualización predeterminado. Para las imágenes de tipo de datos double, el intervalo de visualización predeterminado es [0, 1]. La imagen aparece en blanco y negro porque los valores de los píxeles filtrados superan el intervalo [0, 1].

imshow(edgeG)

Figure contains an axes object. The axes object contains an object of type image.

Muestre la imagen filtrada y escale el intervalo de visualización a los valores de los píxeles de la imagen. La imagen se muestra con toda la gama de valores de la escala de grises.

imshow(edgeG,[])

Figure contains an axes object. The axes object contains an object of type image.

Lea la imagen en escala de grises del archivo corn.tif en el espacio de trabajo. La versión en escala de grises de la imagen es la segunda imagen del archivo.

corn_gray = imread("corn.tif",2);

Seleccione una pequeña sección de la imagen. Muestre la imagen detallada con un aumento del 100% utilizando imshow.

corn_detail = corn_gray(1:100,1:100);
imshow(corn_detail)

Figure contains an axes object. The axes object contains an object of type image.

Muestre la imagen con un aumento del 1000% utilizando el argumento de nombre-valor "InitialMagnification". Por defecto, inshow realiza la interpolación del vecino más cercano de los valores de los píxeles. La imagen tiene artefactos de bloque.

imshow(corn_detail,"InitialMagnification",1000)

Figure contains an axes object. The axes object contains an object of type image.

Muestre la imagen con un aumento del 1000%, especificando la técnica de interpolación bilineal. La imagen aparece más suavizada.

imshow(corn_detail,"InitialMagnification",1000,"Interpolation","bilinear")

Figure contains an axes object. The axes object contains an object of type image.

Lea una imagen en escala de grises en el espacio de trabajo. Muestre la imagen y obtenga el objeto Image creado por la función imshow.

I = imread("pout.tif");
hIm = imshow(I)

Figure contains an axes object. The axes object contains an object of type image.

hIm = 
  Image with properties:

           CData: [291x240 uint8]
    CDataMapping: 'scaled'

  Use GET to show all properties

Muestre las propiedades XData e YData del objeto Image. Los límites de los ejes muestran la extensión espacial de la imagen. Por defecto, la extensión espacial es igual al tamaño de la imagen.

spatialExtentIm = [hIm.XData; hIm.YData]
spatialExtentIm = 2×2

     1   240
     1   291

Cree un objeto de referencia espacial asociado a la imagen. Utilice el objeto de referencia para establecer los límites de los ejes X e Y en el sistema de coordenadas mundial.

RI = imref2d(size(I));
RI.XWorldLimits = [0 3];
RI.YWorldLimits = [2 5];

Muestre la imagen, especificando el objeto de referencia espacial. Obtenga el objeto Image con referencia espacial creado por la función imshow.

hRef = imshow(I,RI);

Figure contains an axes object. The axes object contains an object of type image.

Muestre las propiedades XData e YData del objeto Image con referencia espacial. Los límites de los ejes están ahora dentro de los límites del mundo especificados por el objeto de referencia espacial. La diferencia entre hRef.XData y RI.XWorldLimits (y de manera similar href.YData y RI.YWorldLimits) surge porque el primero mide la distancia entre los centros de los píxeles del borde, mientras que el último mide la distancia entre los límites exteriores de los píxeles del borde.

spatialExtentRef = [hRef.XData; hRef.YData]
spatialExtentRef = 2×2

    0.0063    2.9937
    2.0052    4.9948

Argumentos de entrada

contraer todo

Imagen en escala de grises, especificada como matriz. Una imagen en escala de grises puede ser de cualquier tipo de dato numérico.

Tipos de datos: single | double | int8 | int16 | int32 | int64 | uint8 | uint16 | uint32 | uint64 | logical

Imagen en color verdadero, especificada como arreglo de m por n por 3.

Si especifica una imagen en color verdadero con tipo de datos single o double, los valores deben estar en el intervalo [0, 1]. Si hay valores de píxel fuera de este intervalo, se puede usar la función rescale para llevar los valores al intervalo [0, 1]. El argumento DisplayRange no tiene efecto cuando la imagen de entrada es de color verdadero.

Tipos de datos: single | double | uint8 | uint16

Imagen binaria, especificada como matriz.

Tipos de datos: logical

Imagen indexada, especificada como matriz 2D de enteros positivos. Los valores de X son índices del mapa de colores especificado por map.

Tipos de datos: single | double | uint8 | logical

Mapa de colores asociado a la imagen indexada X, especificado como matriz de c por 3. Cada fila de map es un triplete RGB de tres elementos que especifica los componentes rojo, verde y azul de un único color del mapa de colores. Cuando map es del tipo de datos single o double, los valores de la matriz se encuentran en el intervalo [0, 1].

Tipos de datos: single | double | uint8

Nombre del archivo, especificado como escalar de cadena o vector de caracteres. La imagen debe ser legible por la función imread. La función imshow muestra la imagen, pero no almacena los datos de la misma en el espacio de trabajo de MATLAB®. Si el archivo contiene varias imágenes, imshow muestra la primera imagen del archivo.

Ejemplo: "peppers.png"

Tipos de datos: string | char

Intervalo de visualización de imagen en escala de grises, especificado como vector de dos elementos. Para obtener más información, consulte el argumento de nombre-valor DisplayRange.

Ejemplo: [50 250]

Tipos de datos: single | double | int8 | int16 | int32 | int64 | uint8 | uint16 | uint32 | uint64

Objeto de referencia espacial 2D asociado a la imagen de entrada, especificado como objeto imref2d.

Argumentos de par nombre-valor

Especifique pares de argumentos opcionales como Name1=Value1,...,NameN=ValueN, donde Name es el nombre del argumento y Value es el valor correspondiente. Los argumentos de nombre-valor deben aparecer después de otros argumentos. Sin embargo, el orden de los pares no importa.

Ejemplo: imshow("board.tif",Border="tight") muestra la imagen con nombre de archivo board.tif sin espacio alrededor de la imagen en la figura.

En las versiones anteriores a la R2021a, utilice comas para separar cada nombre y valor, y encierre Name entre comillas.

Ejemplo: imshow("board.tif","Border","tight") muestra la imagen con nombre de archivo board.tif sin espacio alrededor de la imagen en la figura.

Espacio del borde de la ventana de la figura, especificado como "tight" o "loose". Cuando se establece en "loose", la ventana de la figura incluye el espacio alrededor de la imagen en la figura. Cuando se establece en "tight", la ventana de la figura no incluye ningún espacio alrededor de la imagen en la figura.

Si la imagen es muy pequeña o si la figura contiene otros objetos además de una imagen y sus ejes, imshow podría utilizar un borde independientemente de cómo se establezca este argumento.

Tipos de datos: char

Mapa de colores de los ejes, especificado como matriz de c por 3 con valores en el intervalo [0, 1]. Cada fila de la matriz es un triplete RGB de tres elementos que especifica los componentes rojo, verde y azul de un único color del mapa de colores. Utilice este argumento para ver las imágenes en escala de grises en falso color. Si especifica un mapa de colores vacío ([]), la función imshow ignora este argumento.

Ejemplo: cmap = copper; imshow("board.tif",Colormap=cmap)

Tipos de datos: double

Intervalo de visualización de imagen en escala de grises, especificado como un vector de dos elementos de la forma [low high]. La función imshow muestra el valor low (y cualquier valor menor que low) como negro, y muestra el valor high (y cualquier valor mayor que high) como blanco. Los valores entre low y high se muestran como tonos de gris intermedios, utilizando el número de niveles de gris predeterminado.

Si se especifica una matriz vacía ([]), imshow utiliza un intervalo de visualización de [min(I(:)) max(I(:))]. En otras palabras, el valor mínimo en I es negro, y el valor máximo es blanco.

Si no especifica un intervalo de visualización, imshow selecciona un intervalo de visualización predeterminado basado en el tipo de datos de la imagen.

  • Si I es un tipo entero, DisplayRange tiene por defecto los valores mínimos y máximos representables para esa clase de entero. Por ejemplo, el intervalo de visualización predeterminado para los arreglos uint16 es [0, 65535].

  • Si I es del tipo de datos single o double, el intervalo de visualización predeterminado es [0, 1].

Nota

Incluir el nombre del argumento es opcional, excepto cuando la imagen se especifica mediante un nombre de archivo. La sintaxis imshow(I,[low high]) es equivalente a imshow(I,DisplayRange=[low high]). Si llama a imshow con un nombre de archivo, debe especificar el argumento de nombre-valor DisplayRange.

Ejemplo: DisplayRange=[10 250]

Tipos de datos: single | double | int8 | int16 | int32 | int64 | uint8 | uint16 | uint32 | uint64

Aumento inicial de la visualización de la imagen, especificado como escalar numérico o "fit". Si se establece en 100, imshow muestra la imagen con un aumento del 100% (un píxel de la pantalla por cada píxel de la imagen). Si se establece en "fit", imshow escala toda la imagen para que quepa en la ventana.

Inicialmente, imshow intenta mostrar toda la imagen con el aumento especificado. Si el valor de aumento es tan grande que la imagen es demasiado grande para mostrarla en la pantalla, imshow muestra la imagen con el mayor aumento que quepa en la pantalla.

Si la imagen se muestra en una figura con su propiedad WindowStyle establecida en "docked", imshow muestra la imagen con el mayor aumento que quepa en la figura.

Nota: Si especifica la posición de los ejes, imshow ignora cualquier aumento inicial que haya especificado y adopta por defecto el comportamiento "fit".

Cuando utilice imshow con el argumento de nombre-valor Reduce, el aumento inicial debe ser "fit".

En MATLAB Online™, InitialMagnification se establece en "fit" y no se puede cambiar.

Ejemplo: InitialMagnification=80

Tipos de datos: single | double | int8 | int16 | int32 | int64 | uint8 | uint16 | uint32 | uint64 | char

Método de interpolación, especificado como "nearest" o "bilinear". MATLAB utiliza la interpolación para mostrar una versión escalada de la imagen en su pantalla. El valor que elija no afecta a los datos de la imagen. Elija un método de interpolación en función del contenido de la imagen y del efecto que quiera conseguir:

  • "nearest": interpolación del vecino más cercano. El valor de un píxel situado en (x, y) es el valor del píxel más cercano a (x, y) en la imagen original. Este método es el mejor cuando hay un pequeño número de valores de píxeles que representan categorías distintas, o cuando desea ver píxeles individuales en una vista muy ampliada.

  • "bilinear": interpolación bilineal. El valor de un píxel situado en (x, y) es una media ponderada de los píxeles circundantes en la imagen original. Para minimizar los artefactos de visualización, la función imshow realiza un anti-aliasing cuando se reduce la imagen. Este método es el mejor en casi todas las demás situaciones.

Ejes principales del objeto de imagen, especificados como objeto Axes o UIAxes. Utilice el argumento nombre-valor Parent para crear una interfaz de usuario que le permita controlar las propiedades de Figure y Axes.

Indicador de submuestreo de la imagen, especificado como valor numérico o lógico true (1) o false (0). Este argumento solo es válido cuando se utiliza con el nombre de un archivo TIFF. Utilice el argumento Reduce para mostrar vistas generales de imágenes muy grandes.

Tipos de datos: logical

Límites del eje X del sistema de coordenadas no predeterminado, especificados como vector de dos elementos. Este argumento establece un sistema de coordenadas espaciales no predeterminado especificando los XData de la imagen. El valor puede tener más de dos elementos, pero imshow solo utiliza el primero y el último.

Ejemplo: XData=[100 200]

Tipos de datos: single | double | int8 | int16 | int32 | int64 | uint8 | uint16 | uint32 | uint64

Límites del eje Y del sistema de coordenadas no predeterminado, especificados como vector de dos elementos. El valor puede tener más de dos elementos, pero imshow solo utiliza el primero y el último.

Ejemplo: YData=[100 200]

Tipos de datos: single | double | int8 | int16 | int32 | int64 | uint8 | uint16 | uint32 | uint64

Argumentos de salida

contraer todo

Imagen creada por imshow, especificada como objeto de imagen.

Sugerencias

  • Para cambiar el mapa de colores después de crear la imagen, utilice el comando colormap.

  • Puede mostrar varias imágenes con diferentes mapas de colores en la misma figura utilizando imshow con las funciones tiledlayout y nexttile.

  • Puede crear unos ejes sobre los ejes creados por imshow mediante el uso del comando hold on después de llamar a imshow.

  • Puede usar la app Image Viewer, que presenta un entorno integrado para visualizar imágenes y realizar algunas tareas comunes de procesamiento de imágenes.

  • Puede establecer preferencias de Image Processing Toolbox™ que modifiquen el comportamiento de imshow utilizando la función iptsetpref.

  • La opción imshow no es compatible cuando inicia MATLAB con la opción -nojvm.

  • Los títulos de las figuras pueden aparecer cortados en Live Editor. Para garantizar que se puede ver todo el título, establezca la propiedad PositionContraint del objeto de los ejes principales en "outerposition". Actualice el valor de la propiedad después de la función imshow y antes de la función title.

    I = imread("peppers.png");
    imshow(I)
    ax = gca;
    ax.PositionConstraint = "outerposition";
    title("Peppers");
    Si especifica los ejes principales utilizando el argumento nombre-valor Parent, establezca la propiedad PositionConstraint del objeto de los ejes principales especificado. Para obtener más detalles sobre las propiedades de ubicación de los ejes, consulte Controlar el diseño de los ejes.

Capacidades ampliadas

Historial de versiones

Introducido antes de R2006a

expandir todo