# 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.
 In[1]:=
 Out[1]//MatrixForm=
The size of the matrix can be explicitly specified.
 In[2]:=
 Out[2]//MatrixForm=
 In[3]:=
 Out[3]//MatrixForm=
This creates a matrix containing an ellipse and displays it graphically.
 In[4]:=
 Out[4]=
Here is the same matrix, converted to an Image. Note that 1 is White and 0 is Black.
 In[5]:=
 Out[5]=
The shape matrix family of functions can make arrays with any rank.
 In[6]:=
 Out[6]=
 In[7]:=
 Out[7]=
 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 direction GaussianMatrix[{{r1,…},{σ1,…}},{n1,…}] a (2r1+1)× … array that samples the ni discrete derivative in the i direction of a Gaussian with standard deviation σi in the i direction

Gaussian matrices.

This creates a radius 2 Gaussian kernel.
 In[8]:=
 Out[8]//MatrixForm=
GaussianMatrix can construct arrays with any rank.
 In[9]:=
 Out[9]=
By default, the matrix elements are numerical and constructed to behave optimally under discrete convolution. Using will produce an exact representation.
 In[10]:=
 Out[10]//MatrixForm=
Use Method->"Gaussian" to sample a true Gaussian.
 In[11]:=
 Out[11]//MatrixForm=
This shows a comparison of the two types of Gaussians.
 In[12]:=
 Out[12]=
This specifies a standard deviation of 1 in both directions of a rectangular Gaussian matrix.
 In[13]:=
 Out[13]//MatrixForm=
Plot the second derivative of the Gaussian in the row direction.
 In[14]:=
 Out[14]=
Sum derivatives by using nested List objects in the second argument. For example, this plots the Laplacian.
 In[15]:=
 Out[15]=
This finds the length of the vector which has a minimum of 95% of the integrated fraction of the Gaussian with standard deviation 1.
 In[16]:=
 Out[16]=
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.
 In[17]:=
 Out[17]=
 In[18]:=
 Out[18]=