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 ^(th) derivative of the Gaussian with respect to rows and the ^(th) derivative with respect to columns.

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

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

Details and OptionsDetails and Options

  • GaussianMatrix[r] gives values that approximate at index position from the center, where .
  • 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
    WorkingPrecisionAutomaticthe precision with which to compute matrix elements
    "Standardization"Truewhether to rescale and shift the matrix to account for truncation
  • Possible settings for the Method option are and .
  • 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 , the elements of GaussianMatrix[r] will sum to 1. However, the elements of GaussianMatrix[r,{n1,n2,}] with at least one nonzero 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 , will be 1.
  • With "Standardization"->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 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 , will be 1.
  • With "Standardization"->False, no proportionality factor is used.

Background
Background

  • 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 2010
(8.0)