GradientFilter[image, r]
gives an image corresponding to the magnitude of the gradient of image, computed using discrete derivatives of a Gaussian of pixel radius r.

GradientFilter[image, {r, }]
uses a Gaussian with standard deviation .

GradientFilter[image, {{r1, r2}, ...}]
uses a Gaussian with radii etc. in the vertical and horizontal directions.

GradientFilter[data, ...]
applies gradient filtering to an array of data.

Details and OptionsDetails and Options

  • GradientFilter works with arbitrary grayscale and multichannel images.
  • GradientFilter works with 3D as well as 2D images, and also with data arrays of any rank.
  • For a single-channel image and for data, the gradient magnitude is the Euclidean norm of the gradient at a pixel position, 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 gradient magnitude is the square root of the largest eigenvalue of .
  • GradientFilter[image, ...] always returns a single-channel image.
  • GradientFilter[image, r] is equivalent to GradientFilter[image, {r, r/2}].
  • The following options can be specified:
  • Method"Bessel"convolution kernel
    Padding"Fixed"padding method
    WorkingPrecisionAutomaticthe precision to use
    "NonMaxSuppression"Falsewhether to use non-maximum suppression
  • GradientFilter[image, ...] by default gives an image of the same dimensions as image.
  • With a setting Padding->None, GradientFilter[image, ...] normally gives an image smaller than image.
  • In GradientFilter[data, ...], data can be an array of any rank and can contain symbolic as well as numerical entries.
  • Possible settings for Method 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

ExamplesExamplesopen allclose all

Basic Examples (3)Basic Examples (3)

Gradient filtering of a multichannel image:

Click for copyable input

Adjusted gradient filter of a grayscale image:

Click for copyable input

Apply gradient filtering to a vector of numbers:

Click for copyable input
New in 7 | Last modified in 9
New to Mathematica? Find your learning path »
Have a question? Ask support »