imgradientxyz
Find directional gradients of 3-D image
Description
Examples
Read 3-D data and prepare it for processing.
volData = load('mri');
sz = volData.siz;
vol = squeeze(volData.D);
Calculate the directional gradients.
[Gx, Gy, Gz] = imgradientxyz(vol);
Visualize the directional gradients as a montage.
figure, montage(reshape(Gx,sz(1),sz(2),1,sz(3)),'DisplayRange',[]) title('Gradient magnitude along X')
figure, montage(reshape(Gy,sz(1),sz(2),1,sz(3)),'DisplayRange',[]) title('Gradient magnitude along Y')
figure, montage(reshape(Gz,sz(1),sz(2),1,sz(3)),'DisplayRange',[]) title('Gradient magnitude along Z')
Input Arguments
Input image, specified as a 3-D grayscale image or 3-D binary image.
Data Types: single
| double
| int8
| int16
| int32
| int64
| uint8
| uint16
| uint32
| uint64
| logical
Gradient operator, specified as one of the following values.
Value | Meaning | ||||||
---|---|---|---|---|---|---|---|
| Sobel gradient operator. The gradient of a pixel is a weighted sum of pixels in the 3-by-3-by-3 neighborhood. For example, in the depth (z) direction, the weights in the three planes are:
| ||||||
| Prewitt gradient operator. The gradient of a pixel is a weighted sum of pixels in the 3-by-3-by-3 neighborhood. For example, in the depth (z) direction, the weights in the three planes are:
| ||||||
"central" | Central difference gradient. The
gradient of a pixel is a weighted difference of
neighboring pixels. For example, in the depth
(z) direction, | ||||||
"intermediate" | Intermediate difference gradient. The
gradient of a pixel is the difference between an
adjacent pixel and the current pixel. For example,
in the depth (z) direction,
|
When applying the gradient operator at the boundaries of the image,
imgradientxyz
assumes values
outside the bounds of the image are equal to the
nearest image border value. This behavior is similar
to the "replicate"
boundary
option in imfilter
.
Data Types: char
| string
Output Arguments
Horizontal gradient, returned as a numeric matrix of
the same size as image I
. The
horizontal (x) axis points in the
direction of increasing column subscripts.
Gx
is of class
double
, unless the input image
I
is of class
single
, in which case
Gx
is of class
single
.
Data Types: single
| double
Vertical gradient, returned as a numeric matrix of the
same size as image I
. The
vertical (y) axis points in the
direction of increasing row subscripts.
Gy
is of class
double
, unless the input image
I
is of class
single
, in which case
Gy
is of class
single
.
Data Types: single
| double
Depth gradient, returned as a 3-D numeric array of the
same size as image I
. The depth
(z) axis points in the
direction of increasing plane subscripts.
Gz
is of class
double
, unless the input image
I
is of class
single
, in which case
Gz
is of class
single
.
Algorithms
imgradientxyz
does not normalize the gradient
output. If the range of the gradient output image has to match the
range of the input image, consider normalizing the gradient image,
depending on the method
argument used. For example,
with a Sobel kernel, the normalization factor is 1/44, for Prewitt,
the normalization factor is 1/18.
Extended Capabilities
Usage notes and limitations:
imgradientxyz
supports the generation of C and C++ code (requires MATLAB® Coder™). For more information, see Code Generation for Image Processing.When generating code, the input argument
method
must be a compile-time constant.
Usage notes and limitations:
When generating code, the input argument
method
must be a compile-time constant.
Version History
Introduced in R2016a
See Also
MATLAB Command
You clicked a link that corresponds to this MATLAB command:
Run the command by entering it in the MATLAB Command Window. Web browsers do not support MATLAB commands.
Sélectionner un site web
Choisissez un site web pour accéder au contenu traduit dans votre langue (lorsqu'il est disponible) et voir les événements et les offres locales. D’après votre position, nous vous recommandons de sélectionner la région suivante : .
Vous pouvez également sélectionner un site web dans la liste suivante :
Comment optimiser les performances du site
Pour optimiser les performances du site, sélectionnez la région Chine (en chinois ou en anglais). Les sites de MathWorks pour les autres pays ne sont pas optimisés pour les visites provenant de votre région.
Amériques
- América Latina (Español)
- Canada (English)
- United States (English)
Europe
- Belgium (English)
- Denmark (English)
- Deutschland (Deutsch)
- España (Español)
- Finland (English)
- France (Français)
- Ireland (English)
- Italia (Italiano)
- Luxembourg (English)
- Netherlands (English)
- Norway (English)
- Österreich (Deutsch)
- Portugal (English)
- Sweden (English)
- Switzerland
- United Kingdom (English)