MATLAB中imshow()和image()

时间:2022-02-03 00:42:57

MATLAB中imshow()和image():

IMSHOW Display image in Handle Graphics figure.

IMSHOW(I) displays the grayscale image I.

IMSHOW(I,[LOW HIGH]) displays the grayscale image I, specifying the display
range for I in [LOW HIGH]. The value LOW (and any value less than LOW)
displays as black, the value HIGH (and any value greater than HIGH) displays
as white. Values in between are displayed as intermediate shades of gray,
using the default number of gray levels. If you use an empty matrix ([]) for
[LOW HIGH], IMSHOW uses [min(I(:)) max(I(:))]; that is, the minimum value in
I is displayed as black, and the maximum value is displayed as white.

IMSHOW(RGB) displays the truecolor image RGB.

IMSHOW(BW) displays the binary image BW. IMSHOW displays pixels with the
value 0 (zero) as black and pixels with the value 1 as white.

IMSHOW(X,MAP) displays the indexed image X with the colormap MAP.

IMSHOW(FILENAME) displays the image stored in the graphics file FILENAME.
The file must contain an image that can be read by IMREAD or
DICOMREAD. IMSHOW calls IMREAD or DICOMREAD to read the image from the file,
but does not store the image data in the MATLAB workspace. If the file
contains multiple images, the first one will be displayed. The file must be
in the current directory or on the MATLAB path.

HIMAGE = IMSHOW(...) returns the handle to the image object created by
IMSHOW.

IMSHOW(...,PARAM1,VAL1,PARAM2,VAL2,...) displays the image, specifying
parameters and corresponding values that control various aspects of the
image display. Parameter names can be abbreviated, and case does not matter.

Parameters include:

'Border' String that controls whether
a border is displayed around the image in the
figure window. Valid strings are 'tight' and
'loose'.

Note: There can still be a border if the image
is very small, or if there are other objects
besides the image and its axes in the figure.

By default, the border is set to the value
returned by
IPTGETPREF('ImshowBorder').

'Colormap' 2-D, real, M-by-3 matrix specifying a colormap.
IMSHOW uses this to set the figure's colormap
property. Use this parameter to view grayscale
images in false color.

'DisplayRange' Two-element vector [LOW HIGH] that controls the
display range of a grayscale image. See above
for more details about how to set [LOW HIGH].

Including the parameter name is optional, except
when the image is specified by a filename.
The syntax IMSHOW(I,[LOW HIGH]) is equivalent to
IMSHOW(I,'DisplayRange',[LOW HIGH]).
The parameter name must be specified when
using IMSHOW with a filename, as in the syntax
IMSHOW(FILENAME,'DisplayRange'[LOW HIGH]).

'InitialMagnification' A numeric scalar value, or the text string 'fit',
that specifies the initial magnification used to
display the image. When set to 100, the image is
displayed at 100% magnification. When set to
'fit' IMSHOW scales the entire image to fit in
the window.

On initial display, the entire image is visible.
If the magnification value would create an image
that is too large to display on the screen,
IMSHOW warns and displays the image at the
largest magnification that fits on the screen.

By default, the initial magnification is set to
the value returned by
IPTGETPREF('ImshowInitialMagnification').

If the image is displayed in a figure with its
'WindowStyle' property set to 'docked', then
IMSHOW warns and displays the image at the
largest magnification that fits in the figure.

Note: If you specify the axes position (using
subplot or axes), imshow ignores any initial
magnification you might have specified and
defaults to the 'fit' behavior.

When used with the 'Reduce' parameter, only
'fit' is allowed as an initial magnification.

'Parent' Handle of an axes that specifies
the parent of the image object created
by IMSHOW.

'Reduce' Logical value that specifies whether IMSHOW
subsamples the image in FILENAME. The 'Reduce'
parameter is only valid for TIFF images and
you must specify a filename. Use this
parameter to display overviews of very large
images.

'XData' Two-element vector that establishes a
nondefault spatial coordinate system by
specifying the image XData. The value can
have more than 2 elements, but only the first
and last elements are actually used.

'YData' Two-element vector that establishes a
nondefault spatial coordinate system by
specifying the image YData. The value can
have more than 2 elements, but only the first
and last elements are actually used.

Class Support
-------------
A truecolor image can be uint8, uint16, single, or double. An indexed
image can be logical, uint8, single, or double. A grayscale image can
be any numeric datatype. A binary image is of class logical.

If your grayscale image is single or double, the default display range is
[0 1]. If your image's data range is much larger or smaller than the default
display range, you may need to experiment with setting the display range to
see features in the image that would not be visible using the default
display range. For all grayscale images having integer types, the default
display range is [intmin(class(I)) intmax(class(I))].

If your image is int8, int16, uint32, int32, or single, the CData in
the resulting image object will be double. For all other classes, the
CData matches the input image class.

Related Toolbox Preferences
---------------------------
You can use the IPTSETPREF function to set several toolbox preferences that
modify the behavior of IMSHOW:

- 'ImshowBorder' controls whether IMSHOW displays the image with a border
around it.

- 'ImshowAxesVisible' controls whether IMSHOW displays the image with the
axes box and tick labels.

- 'ImshowInitialMagnification' controls the initial magnification for
image display, unless you override it in a particular call by
specifying IMSHOW(...,'InitialMagnification',INITIAL_MAG).

For more information about these preferences, see the reference entry for
IPTSETPREF.

Remarks
-------
IMSHOW is the toolbox's fundamental image display function, optimizing
figure, axes, and image object property settings for image display. IMTOOL
provides all the image display capabilities of IMSHOW but also provides
access to several other tools for navigating and exploring images, such as
the Pixel Region tool, Image Information tool, and the Adjust Contrast
tool. IMTOOL presents an integrated environment for displaying images and
performing some common image processing tasks.

The imshow function is not supported when MATLAB is started with the
-nojvm option.

Examples
--------
% Display an image from a file
imshow('board.tif')

% Display an indexed image
[X,map] = imread('trees.tif');
imshow(X,map)

% Display a grayscale image
I = imread('cameraman.tif');
imshow(I)

% Display a grayscale image, adjust the display range
h = imshow(I,[0 80]);

See also imread, imtool, iptprefs, subimage, truesize, warp, image,
imagesc.

IMAGE Display image.

IMAGE(C) displays matrix C as an image. Each element of C
specifies the color of a rectilinear patch in the image. C can be
a matrix of dimension MxN or MxNx3, and can contain double, uint8,
or uint16 data.

When C is a 2-dimensional MxN matrix, the elements of C are used
as indices into the current COLORMAP to determine the color. The
value of the image object's CDataMapping property determines the
method used to select a colormap entry. For 'direct' CDataMapping
(the default), values in C are treated as colormap indices
(1-based if double, 0-based if uint8 or uint16). For 'scaled'
CDataMapping, values in C are first scaled according to the axes
CLim and then the result is treated as a colormap index. When C is
a 3-dimensional MxNx3 matrix, the elements in C(:,:,1) are
interpreted as red intensities, in C(:,:,2) as green intensities,
and in C(:,:,3) as blue intensities, and the CDataMapping property
of image is ignored. For matrices containing doubles, color
intensities are on the range [0.0, 1.0]. For uint8 and uint16
matrices, color intensities are on the range [0, 255].

IMAGE(C) places the center of element C(1,1) at (1,1) in the axes,
and the center of element (M,N) at (M,N) in the axes, and draws
each rectilinear patch as 1 unit in width and height. As a
result, the outer extent of the image occupies [0.5 N+0.5 0.5 M+0.5]
of the axes, and each pixel center of the image lies at integer
coordinates ranging between 1 and M or N.

IMAGE(X,Y,C), where X and Y are vectors, specifies the locations
of the pixel centers of C(1,1) and C(M,N). Element C(1,1) is
centered over (X(1), Y(1)), element C(M,N) is centered over
(X(end), Y(end)), and the pixel centers of the remaining elements
of C are spread out evenly between those two points, so that the
rectilinear patches are all of equal width and height.

IMAGE returns a handle to an IMAGE object.

C or the X,Y,C triple can be followed by property/value
pairs to specify additional properties of the image.
C or the X,Y,C triple can be omitted entirely, and all
properties specified using property/value pairs.

IMAGE(...,'Parent',AX) specifies AX as the parent axes for the
image object during creation.

When called with C or X,Y,C, IMAGE sets the axes limits to tightly
enclose the image, sets the axes YDir property to 'reverse', and
sets the axes View property to [0 90].

The image object will not render at axes View angles other than
[0 90]. To get a similar effect to rotating an image, use SURF
with texture mapping or PCOLOR.

Execute GET(H), where H is an image handle, to see a list of image
object properties and their current values. Execute SET(H) to see a
list of image object properties and legal property values.

See also imagesc, colormap, pcolor, surf, imread, imwrite.