Documentation Center

  • Trial Software
  • Product Updates

Image Import and Export

Introduction

This example shows how to read an image into the MATLAB workspace, adjust the contrast in the image, and then write the adjusted image to a file.

Step 1: Read and Display an Image

First, clear the MATLAB® workspace of any variables and close open figure windows.

clear, close all

To read an image, use the imread command. The example reads one of the sample images included with the toolbox, pout.tif, and stores it in an array named I.

I = imread('pout.tif');

imread infers from the file that the graphics file format is Tagged Image File Format (TIFF). For the list of supported graphics file formats, see the imread function reference documentation.

Now display the image. The toolbox includes two image display functions: imshow and imtool. imshow is the toolbox's fundamental image display function. imtool starts the Image Tool which presents an integrated environment for displaying images and performing some common image processing tasks. The Image Tool provides all the image display capabilities of imshow but also provides access to several other tools for navigating and exploring images, such as scroll bars, the Pixel Region tool, Image Information tool, and the Contrast Adjustment tool. For more information, seeImage Display and Exploration Overview. You can use either function to display an image. This example uses imshow.

imshow(I)

Grayscale Image pout.tif

Step 2: Check How the Image Appears in the Workspace

To see how the imread function stores the image data in the workspace, check the Workspace browser in the MATLAB desktop. The Workspace browser displays information about all the variables you create during a MATLAB session. The imread function returned the image data in the variable I, which is a 291-by-240 element array of uint8 data. MATLAB can store images as uint8, uint16, or double arrays.

You can also get information about variables in the workspace by calling the whos command.

whos

MATLAB responds with

Name      Size         Bytes  Class   Attributes

I        291x240       69840  uint8 

For more information about image storage classes, see Converting Between Image Classes.

Step 3: Improve Image Contrast

pout.tif is a somewhat low contrast image. To see the distribution of intensities in pout.tif, you can create a histogram by calling the imhist function. (Precede the call to imhist with the figure command so that the histogram does not overwrite the display of the image I in the current figure window.)

figure, imhist(I)

Notice how the intensity range is rather narrow. It does not cover the potential range of [0, 255], and is missing the high and low values that would result in good contrast.

The toolbox provides several ways to improve the contrast in an image. One way is to call the histeq function to spread the intensity values over the full range of the image, a process called histogram equalization.

I2 = histeq(I);

Display the new equalized image, I2, in a new figure window.

figure, imshow(I2)

Equalized Version of pout.tif

Call imhist again to create a histogram of the equalized image I2. If you compare the two histograms, the histogram of I2 is more spread out than the histogram of I1.

figure, imhist(I2)

The toolbox includes several other functions that perform contrast adjustment, including the imadjust and adapthisteq functions. See Adjust Pixel Intensity Values for more information. In addition, the toolbox includes an interactive tool, called the Adjust Contrast tool, that you can use to adjust the contrast and brightness of an image displayed in the Image Tool. To use this tool, call the imcontrast function or access the tool from the Image Tool. For more information, see Adjust Image Contrast In Image Viewer App.

Step 4: Write the Image to a Disk File

To write the newly adjusted image I2 to a disk file, use the imwrite function. If you include the filename extension '.png', the imwrite function writes the image to a file in Portable Network Graphics (PNG) format, but you can specify other formats.

imwrite (I2, 'pout2.png');

See the imwrite function reference page for a list of file formats it supports. See also Writing Image Data to Files for more information about writing image data to files.

Step 5: Check the Contents of the Newly Written File

To see what imwrite wrote to the disk file, use the imfinfo function.

imfinfo('pout2.png')

The imfinfo function returns information about the image in the file, such as its format, size, width, and height. See Getting Information About Graphics Files for more information about using imfinfo.

ans = 

                  Filename: 'pout2.png'
               FileModDate: '29-Dec-2005 09:34:39'
                  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: '29 Dec 2005 14:34:39 +0000'
                     Title: []
                    Author: []
               Description: []
                 Copyright: []
              CreationTime: []
                  Software: []
                Disclaimer: []
                   Warning: []
                    Source: []
                   Comment: []
                 OtherText: []
Was this topic helpful?