Structure Matrices and Convolution Kernels

DiskMatrix[r]
a radius r disk of 1s inside a (2r+1)×(2r+1) matrix of 0s
DiskMatrix[{r1,}]
an ellipsoid of 1s with radii r1, inside an array of dimension (2r1+1)×
DiskMatrix[{r1, },{n1, }]
an ellipsoid with radii r1, inside an array of dimension n1×
DiamondMatrix[{r1,},{n1,}]
a diamond of 1s with radii r1, inside an array of dimension n1×
BoxMatrix[{r1,},{n1,}]
a box of 1s with radii r1, inside an array of dimension n1×
CrossMatrix[{r1,},{n1,}]
a cross of 1s with radii r1, inside an array of dimension n1×
Constructing matrices with special shapes.
This creates a matrix of 0s containing a radius 4 diamond of 1s. The result is a 9×9 matrix:
The size of the matrix can be explicitly specified:
This creates a matrix containing an ellipse and displays it graphically:
Here is the same matrix, converted to an Image. Note that 1 is White and 0 is Black:
The shape matrix family of functions can make arrays with any rank:
GaussianMatrix[r]
a (2r+1)×(2r+1) matrix that samples a Gaussian
GaussianMatrix[{r,σ}]
a (2r+1)×(2r+1) matrix that samples a Gaussian with standard deviation σ
GaussianMatrix[{{r1,},{σ1,}}]
a (2r1+1)× array that samples a Gaussian with standard deviation σi in the i th direction
GaussianMatrix[{{r1,},{σ1,}},{n1,}]
a (2r1+1)× array that samples the ni th discrete derivative in the i th direction of a Gaussian with standard deviation σi in the i th direction
Gaussian matrices.
This creates a radius 2 Gaussian kernel:
GaussianMatrix can construct arrays with any rank:
By default, the matrix elements are numerical and constructed to behave optimally under discrete convolution. Using WorkingPrecision->Infinity will produce an exact representation:
Use Method->"Gaussian" to sample a true Gaussian:
This shows a comparison of the two types of Gaussians:
This specifies a standard deviation of 1 in both directions of a rectangular Gaussian matrix:
Plot the second derivative of the Gaussian in the row direction:
Sum derivatives by using nested List objects in the second argument. For example, this plots the Laplacian:
This finds the length of the vector which has a minimum of 95% of the integrated fraction of the Gaussian with standard deviation 1:
This finds the dimensions of the matrix which, in each direction, has a minimum of 95% of the integrated fraction of the Gaussian with standard deviation 1: