gives an image corresponding to the local orientation parallel to the gradient of image, computed using discrete derivatives of a Gaussian of pixel radius r, returning values between and .


uses a Gaussian with standard deviation σ.


applies orientation filtering to an array of data.

Details and Options

  • GradientOrientationFilter works with arbitrary grayscale and color images.
  • GradientOrientationFilter works with 3D as well as 2D images, and also with data arrays of any rank.
  • GradientOrientationFilter[image,] by default gives an image of the same dimensions as image.
  • GradientOrientationFilter[image,] always returns a single-channel image for 2D images and a two-channel image for 3D images.
  • GradientOrientationFilter[data,] returns the orientation as hyperspherical polar coordinate angles. For data arrays of dimensions , for , the resulting array will be of dimensions . The tuples in the resulting array denote the -spherical angles.
  • By default, defined angles are returned in the interval and the value is used for undefined orientation angles.
  • For a single channel image and for data, the gradient at a pixel position is approximated using discrete derivatives of Gaussians in each dimension.
  • For multichannel images, define the Jacobian matrix to be , where is the gradient for channel . The orientation is based on the direction of the eigenvector of that has the largest magnitude eigenvalue. This is the direction that maximizes the variation of pixel values.
  • For data arrays with dimensions, a coordinate system that corresponds to Part indices is assumed such that a coordinate {x1,,xn} corresponds to data[[x1,,xn]]. For images, the filter is effectively applied to ImageData[image].
  • In 1D, the orientation for nonzero gradients is always {0}, and undefined otherwise.
  • In 2D, the orientation is the angle such that is a unit vector parallel to .
  • In 3D, the orientation is represented by the angles such that is a unit vector parallel to the computed gradient.
  • For -dimensional data with , the orientation is given by angles such that is a unit vector in the direction of the computed gradient.
  • GradientOrientationFilter[image,r] is equivalent to GradientOrientationFilter[image,{r,r/2}].
  • The following options can be specified:
  • MethodAutomaticconvolution kernel
    Padding"Fixed"padding method
    WorkingPrecisionAutomaticthe precision to use
  • The following suboptions can be given to Method:
  • "DerivativeKernel""Bessel"convolution kernel
    "UndefinedOrientationValue"-pi/2return value when orientation is undefined
  • Possible settings for "Derivativekernel" include:
  • "Bessel"standardized Bessel derivative kernel, used for Canny edge detection
    "Gaussian"standardized Gaussian derivative kernel, used for Canny edge detection
    "ShenCastan"first-order derivatives of exponentials
    "Sobel"binomial generalizations of the Sobel edge-detection kernels
    {kernel1,kernel2,}explicit kernels specified for each dimension
  • With a setting Padding->None, GradientOrientationFilter[image,] normally gives an image smaller than image.


open allclose all

Basic Examples  (2)

Gradient orientation of a multichannel image:

Click for copyable input

Gradient orientation of a 3D image:

Click for copyable input

Scope  (3)

Options  (1)

Applications  (2)

Properties & Relations  (1)

Possible Issues  (1)

Neat Examples  (2)

See Also

GradientFilter  EdgeDetect  ArcTan  Arg  ImageAdjust

Introduced in 2012
| Updated in 2015