Conceptually, the orientation is determined by fitting (in least-squares fashion) a line to the Fourier transform of a small, apodized part of the data array centered on the point at which the orientation is to be determined. The fit can be determined by calculating the eigenvector corresponding to the smallest eigenvalue of a tensor whose elements are suitable integrals involving the Fourier transform of the data. If one calls the spectral density of the data (i.e., the square of the value of the Fourier transform) a "mass density", and substitutes "space coordinate" for "wavenumber" in the integrals, then the tensor is the inertia tensor of the "mass" distribution, and therefore this method of calculating orientations is known as the (inertia) tensor method.
Fortunately, the calculation of the elements of the inertia tensor can
all be performed in the space domain, by using suitable spatial
derivatives, so no Fourier transforms are actually calculated. During
the calculations, a spatial differencing scheme is used to approximate
the spatial derivatives. The order (and accuracy) of the differencing
scheme is governed by argument
The eigenvalues of the inertia tensor measure the squared gradient of the data values along the principal axes (indicated by the eigenvectors). A zero eigenvalue indicates that the data does not vary along the corresponding principal axis. Such a principal axis may then be said to indicate the orientation of the data.
In practice, the eigenvalues are hardly ever exactly equal to zero, but
if one eigenvalue is much smaller than all other ones, then the
eigenvector corresponding to that eigenvalue can still be said to
indicate the orientation of the data. In general, the eigenvector
corresponding to the smallest eigenvalue of the inertia tensor is taken
to indicate the orientation, and that orientation is returned by
The square of the returned local wavenumber is equal to the average of the square of the component of the wavevector that is aligned with the found orientation, weighted with the square of the spectral density in each small apodized area around the central pixel. As for the local orientation, all local-wavenumber calculations are done completely in the spatial domain, using suitable spatial derivatives.
The local wavenumber in any of the principal directions is equal to the
sum of all eigenvalues except the eigenvalue corresponding to the chosen
principal direction, and the result divided by the local power (see at
The procedure that is used in LUX for calculating local orientation in the space domain from an inertia tensor is described by Jahne [a-umlaut] (1993). He ascribes the idea of determining local orientation in the Fourier domain to Bigun [u-umlaut] and Granlund (1987). The LUX procedure for calculating the local wavenumber was invented by l. Strous (1998) analogous to Jahne’s [a-umlaut] procedure for local orientation.