GaussianMatrix

GaussianMatrix[r]
gives a matrix that corresponds to a Gaussian kernel of radius r.

GaussianMatrix[{r,σ}]
gives a matrix corresponding to a Gaussian kernel with radius r and standard deviation σ.

GaussianMatrix[r,{n1,n2}]
gives a matrix formed from the n1^(th) derivative of the Gaussian with respect to rows and the n2^(th) derivative with respect to columns.

GaussianMatrix[r,{{n11,n12},{n21,n22},}]
gives a matrix formed from the sums of the ni1 and ni2 derivatives.

GaussianMatrix[{{r1,r2,},σ},]
gives an array corresponding to a Gaussian kernel with radius ri in the i^(th) index direction.

Details and OptionsDetails and Options

  • GaussianMatrix[r] gives values that approximate at index position from the center, where σ=r/2.
  • By default, the elements of GaussianMatrix[r] sum to 1.
  • GaussianMatrix[,{n1,n2}] by default constructs discrete derivatives as finite differences.
  • GaussianMatrix[r,{{2,0},{0,2}}] gives a matrix formed from the Laplacian of a Gaussian.
  • GaussianMatrix[{Automatic,σ,f},] constructs a matrix just large enough to include at least a fraction f of the discrete integral of a Gaussian in each direction.
  • Any of the r, σ, and f can be lists, specifying different values for different directions.
  • For integer r, GaussianMatrix[r,] yields a × matrix.
  • For noninteger r, the value of r is effectively rounded to an integer.
  • The following options can be specified:
  • Method"Bessel"how to determine matrix elements
    StandardizedTruewhether to rescale and shift the matrix to account for truncation
    WorkingPrecisionAutomaticthe precision with which to compute matrix elements
  • Possible settings for the Method option are "Bessel" and "Gaussian".
  • With the default option setting Method->"Bessel", GaussianMatrix[r] has elements proportional to product_(i=1)^2exp(-sigma^2) TemplateBox[{{x, _, i}, {sigma, ^, 2}}, BesselI], yielding a kernel with optimal discrete convolution properties.
  • For Method->"Bessel", derivatives of the Gaussian are obtained by the finite difference operator. GaussianMatrix[{r,}] satisfies the finite difference equation .
  • With Method->"Gaussian", GaussianMatrix[r] has elements proportional to the raw continuous functional form .
  • For Method->"Gaussian", derivatives of the Gaussian are proportional to the partial derivatives of the functional form. The GaussianMatrix[{r,}] approximately satisfies the differential equation .
  • With Standardized->True, the elements of GaussianMatrix[r] will sum to 1. However, the elements of GaussianMatrix[r,{n1,n2,}] with at least one nonzero ni will sum to 0, and the sum of the elements, weighted in each direction by times the distance from the origin to the power of ni, will be 1.
  • With Standardized->True, the proportionality factor ensures that the elements of GaussianMatrix[r] sum to 1. However, the elements of GaussianMatrix[r,{n1,n2,}] with at least one nonzero ni will sum to 0, and the sum of the elements, weighted in each direction by times the distance from the origin to the power of ni, will be 1.
  • With Standardized->False, no proportionality factor is used.

Background & Context
Background & Context

  • GaussianMatrix is a constructor function that returns a matrix having a Gaussian profile. Such matrices are typically used as kernels in image convolution for smoothing or taking derivatives of images.
  • The function ImageConvolve can be used to perform convolution on an image using a Gaussian matrix kernel. Other functions that create smoothing or derivative kernel matrices include ShenCastanMatrix and SavitzkyGolayMatrix. Note that non-smooth kernels can also be used to smooth images. Binary kernels commonly used for this purpose include DiskMatrix, DiamondMatrix, and other similar functions.
Introduced in 2008
(7.0)
| Updated in 2015
(10.1)
Translate this page: