GradientFilter

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  (4)Basic Examples  (4)

Apply gradient filtering to a vector of numbers:

In[1]:=
Click for copyable input
Out[1]=

Adjusted gradient filter of a grayscale image:

In[1]:=
Click for copyable input
Out[1]=

Gradient filtering of a multichannel image:

In[1]:=
Click for copyable input
Out[1]=

Gradient filtering of a 3D image:

In[1]:=
Click for copyable input
Out[1]=
Introduced in 2008
(7.0)
| Updated in 2012
(9.0)