Graphics |
Controlling Aspect Ratio and Display Size
The image
function displays the image in a default-sized figure and axes. MATLAB stretches or shrinks the image to fit the display area. Sometimes you want the aspect ratio of the display to match the aspect ratio of the image data matrix. The easiest way to do this is with the command axis
image
.
For example, these commands display the earth
image in the demos
directory using the default figure and axes positions.
The elongated globe results from stretching the image display to fit the axes position. Use the axis
image
command to force the aspect ratio to be one-to-one.
The command axis
image
works by setting the DataAspectRatio
property of the axes object to [1 1 1]. See axis
and axes
for more information on how to control the appearance of axes objects.
Sometimes you may want to display an image so that each element in the data matrix corresponds to a single screen pixel. To display an image with this one-to-one, matrix-element-to-screen-pixel mapping, you need to resize the figure and axes. For example, these commands display the earth image so that one data element corresponds to one screen pixel.
[m,n] = size(X); figure('Units','pixels','Position',[100 100 n m]) image(X); colormap(map) set(gca,'Position',[0 0 1 1])
The figure's Position
property is a four-element vector that specifies the figure's location on the screen as well as its size. The second statement above positions the figure so that its lower-left corner is at position (100,100) on the screen and so that its width and height match the image width and height. Setting the axes position to [0 0 1 1] in normalized units creates an axes that fills the figure. The resulting picture is shown.
Summary of Image Types and Display Methods | The Image Object and Its Properties |