Purpose

The QuadratureToTensor module is used for calculating an orientation tensor (also known as structure tensor) from a set of quadrature filter outputs. The quadrature filter outputs can be obtained with the QuadratureFilter module.

Usage

Connect the outputs from the QuadratureFilter module to the QuadratureToTensor module.

Details

The theory of how to calculate the orientation tensor can be found in this book:

G. Granlund and H. Knutsson (1995)
Signal Processing for Computer Vision
Kluwer Academic Publishers, ISBN 0-7923-9530-1

Other resources are also available on the internet.

Example

The example network shows an orientation estimation of a test image.

Tips

To find the dominant local orientation from the tensor, one has to do an eigen-decomposition. This can be done with the TensorToEigensystem module.

Input Fields

The image input is a set of quadrature filter responses stored in the u dimension. The quadrature filters have different directions. These are stored in an XMarkerList that comes from the QuadratureFilter module. The filter directions are also required for calculating the orientation tensor.

input0

name: input0, type: Image

A filter response image.

inputFilterDirsBaseFld

name: inputFilterDirsBaseFld, type: MLBase

Directions of the filters that created the input image.

Output Fields

The orientation tensor is a symmetric 2x2 matrix for 2D data or a symmetric 3x3 matrix for 3D data. For 2D, a vec3 is used for representing the symmetric matrix and in 3D, a vec6 is used. The elements are taken as follows:

For 2D data:
T = [ t11 t12 ]
[ t12 t22 ]

This matrix is stored in a vec3 in the following order: [ t11, t12, t22 ]

For 3D data:
[ t11 t12 t13 ]
T = [ t12 t22 t23 ]
[ t13 t23 t33 ]

This matrix is stored in a vec6 in the following order: [ t11, t12, t13, t22, t23, t33 ]

output0

name: output0, type: Image

The resulting tensors.