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.

Importación, procesamiento y exportación básicos de imágenes

Este ejemplo muestra cómo leer una imagen en el espacio de trabajo, ajustar el contraste de la imagen y, después, escribir la imagen ajustada en un archivo.

Paso 1: Leer y mostrar una imagen

Lea una imagen en el espacio de trabajo utilizando el comando imread. El ejemplo lee una de las imágenes de muestra incluidas en la toolbox, una imagen de una niña en un archivo llamado pout.tif, y la almacena en un arreglo llamado I. imread infiere del archivo que el formato del archivo gráfico es Tagged Image File Format (TIFF).

I = imread('pout.tif');

Muestre la imagen utilizando la función imshow. También puede ver una imagen en la app Image Viewer. La función imtool abre la app Image Viewer, que presenta un entorno integrado para visualizar imágenes y realizar algunas tareas comunes de procesamiento de imágenes. La app Image Viewer ofrece todas las prestaciones de visualización de imágenes de imshow, pero también proporciona acceso a otras herramientas para navegar y explorar las imágenes, como barras de desplazamiento, la herramienta Pixel Region, la herramienta Image Information y la herramienta Contrast Adjustment.

imshow(I)

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

Paso 2: Comprobar cómo aparece la imagen en el espacio de trabajo

Compruebe cómo almacena la función imread los datos de la imagen en el espacio de trabajo mediante el comando whos. También puede comprobar la variable en el navegador del espacio de trabajo. La función imread devuelve los datos de la imagen en la variable I, que es un arreglo de 291 por 240 elementos de datos uint8.

whos I
  Name        Size             Bytes  Class    Attributes

  I         291x240            69840  uint8              

Paso 3: Mejorar el contraste de la imagen

Compruebe la distribución de las intensidades de los píxeles de la imagen. La imagen pout.tif es una imagen con poco contraste. Para ver la distribución de las intensidades de la imagen, cree un histograma llamando a la función imhist. (Preceda la llamada a imhist con el comando de figura para que el histograma no sobrescriba la visualización de la imagen I en la ventana de figura actual). Observe cómo el histograma indica que el intervalo de intensidad de la imagen es bastante estrecho. El intervalo no cubre el intervalo potencial de [0, 255], y le faltan los valores altos y bajos que darían lugar a un buen contraste.

figure
imhist(I)

Figure contains 2 axes objects. Axes object 1 contains an object of type stem. Axes object 2 contains 2 objects of type image, line.

Mejore el contraste de la imagen utilizando la función histeq. La ecualización del histograma reparte los valores de intensidad en todo el intervalo de la imagen. Muestre la imagen. (La toolbox incluye otras funciones que realizan el ajuste del contraste, como imadjust y adapthisteq, y herramientas interactivas como la herramienta Adjust Contrast, disponible en Image Viewer).

I2 = histeq(I);
figure
imshow(I2)

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

Acceda de nuevo a la función imhist para crear un histograma de la imagen ecualizada I2. Si compara los dos histogramas, puede ver que el histograma de I2 está más repartido por todo el intervalo que el histograma de I.

figure
imhist(I2)

Figure contains 2 axes objects. Axes object 1 contains an object of type stem. Axes object 2 contains 2 objects of type image, line.

Paso 4: Escribir la imagen ajustada en un archivo de disco

Grabe la imagen I2 que acaba de ajustar en un archivo de disco utilizando la función imwrite. Este ejemplo incluye la extensión de nombre de archivo '.png' en el nombre de archivo, por lo que la función imwrite escribe la imagen en un archivo en formato Portable Network Graphics (PNG), pero puede especificar otros formatos.

imwrite (I2, 'pout2.png');

Paso 5: Comprobar el contenido del archivo que se acaba de grabar

Compruebe lo que imwrite grabó en el archivo de disco utilizando la función imfinfo. La función imfinfo devuelve información sobre la imagen del archivo, como su formato, tamaño, anchura y altura.

imfinfo('pout2.png')
ans = struct with fields:
                  Filename: '/tmp/Bdoc22a_1900185_259743/tp6b2158c4/images-ex89505080/pout2.png'
               FileModDate: '08-Mar-2022 16:12:54'
                  FileSize: 36938
                    Format: 'png'
             FormatVersion: []
                     Width: 240
                    Height: 291
                  BitDepth: 8
                 ColorType: 'grayscale'
           FormatSignature: [137 80 78 71 13 10 26 10]
                  Colormap: []
                 Histogram: []
             InterlaceType: 'none'
              Transparency: 'none'
    SimpleTransparencyData: []
           BackgroundColor: []
           RenderingIntent: []
            Chromaticities: []
                     Gamma: []
               XResolution: []
               YResolution: []
            ResolutionUnit: []
                   XOffset: []
                   YOffset: []
                OffsetUnit: []
           SignificantBits: []
              ImageModTime: '8 Mar 2022 21:12:54 +0000'
                     Title: []
                    Author: []
               Description: []
                 Copyright: []
              CreationTime: []
                  Software: []
                Disclaimer: []
                   Warning: []
                    Source: []
                   Comment: []
                 OtherText: []