To display image data, use the
The following example reads an image into the MATLAB® workspace
and then displays the image in a MATLAB figure window.
moon = imread('moon.tif'); imshow(moon);
imshow function displays the image in
a MATLAB figure window, as shown in the following figure.
You can also pass
imshow the name of a file
containing an image.
This syntax can be useful for scanning through images. Note,
however, that when you use this syntax, imread does not store the
image data in the MATLAB workspace. If you want to bring the
image into the workspace, you must use the
which retrieves the image data from the current Handle Graphics® image
object. This example assigns the image data from
moon, if the figure window in which
it is displayed is currently active.
moon = getimage;
For more information about using
display the various image types supported by the toolbox, see Display Different Image Types.
to display an image in its entirety at 100% magnification (one screen
pixel for each image pixel). However, if an image is too large to
fit in a figure window on the screen at 100% magnification,
the image to fit onto the screen and issues a warning message.
To override the default initial magnification behavior for a
particular call to
imshow, specify the
For example, to view an image at 150% magnification, use this code.
pout = imread('pout.tif'); imshow(pout, 'InitialMagnification', 150)
imshow attempts to honor the magnification
you specify. However, if the image does not fit on the screen at the
imshow scales the image
to fit and issues a warning message. You can also specify the text
'fit' as the initial magnification value.
In this case,
imshow scales the image to fit the
current size of the figure window.
To change the default initial magnification behavior of
ImshowInitialMagnification toolbox preference.
To set the preference, open the Image Processing Toolbox Preferences
dialog by calling
by selecting Preferences from the MATLAB Desktop File menu.
imshow scales an image, it uses interpolation
to determine the values for screen pixels that do not directly correspond
to elements in the image matrix. For more information, see Specify the Interpolation Method.
By default, when
imshow displays an image
in a figure, it surrounds the image with a gray border. You can change
this default and suppress the border using the
as shown in the following example.
The following figure shows the same image displayed with and without a border.
'border' parameters affect only the image
being displayed in the call to
imshow. If you want
all the images that you display using
appear without the gray border, set the Image Processing Toolbox™
'tight'. You can also use preferences to include
visible axes in the figure. For more information about preferences,
The simplest way to display multiple images is to display them in separate figure windows. MATLAB does not place any restrictions on the number of images you can display simultaneously.
imshow always displays an image in the current
figure. If you display two images in succession, the second image
replaces the first image. To view multiple figures with
figure command to explicitly create a new
empty figure before calling
imshow for the next
image. For example, to view the first three frames in an array of
imshow(I(:,:,:,1)) figure, imshow(I(:,:,:,2)) figure, imshow(I(:,:,:,3))
You can use the
imshow function with the MATLAB
or the MATLAB
subimage function to display
multiple images in a single figure window. For additional options,
see What Is an Image Sequence?.
The Image Viewer app (
subplot divides a figure into multiple display
regions. The syntax of
This syntax divides the figure into an
of display regions and makes the
pth display region
When you use
For example, you can use this syntax to display two images side by side.
[X1,map1]=imread('forest.tif'); [X2,map2]=imread('trees.tif'); subplot(1,2,1), imshow(X1,map1) subplot(1,2,2), imshow(X2,map2)
In the figure, note how the first image displayed,
appears dark after the second image is displayed.
subimage converts images
to truecolor before displaying them and therefore circumvents the
colormap sharing problem. This example uses
display the forest and the trees images with better results.
[X1,map1]=imread('forest.tif'); [X2,map2]=imread('trees.tif'); subplot(1,2,1), subimage(X1,map1) subplot(1,2,2), subimage(X2,map2)