Package com.openinventor.imageviz.engines.imagefiltering.frequencydomain

This category contains FFT and related engines to work on frequency domain. Frequency

Frequency transforms are classical tools in signal processing where the measurement of spectra is used to characterize time-dependent processes such as speech patterns and radar or sonar data.

Some operations in image processing, such as noise detection and correction, are more effectively carried out in the frequency area. The Fourier transform expresses a function as a sum of sine and cosine components. In the Fast Fourier Transform (FFT) of a 2D (or 3D) image, there are two output images. The frequency information, or module, is displayed as one image, while the phase information is stored as another.

The module, or frequency image, is a display of the frequency of change in pixel values. This allows analysis and processing operations to be executed on the frequency component only.

The phase image contains the information about the degree of change in pixel values and is used in combination with the module to reconstruct the image.

The Fourier transform itself is usually only an intermediate step. The algorithms that rely on the Fourier transform fall into three groups:

  • Some operations involving periodicity, shifting, lineation, blurring, etc. are better represented in the Fourier domain.
  • Correlation, convolution, and many linear transformations are more effectively implemented via the Fourier transform.
  • When modified frequencies may be attributed to particular spatial phenomenon, such as noise, transitions, etc. filtering operators or even direct cropping may be used to restore or enhance the image.

Introduction to FFT

The FFT reduces the amount of computation to operations instead of the operations involved in a normal Fourier transform. For images, the classical method consists in computing 1-D FT's successively, since the Fourier transform is separable. The Fourier transform is computed horizontally and then vertically on the intermediate result:

For an image of size NxN, one computes the FT of each line to obtain the functions , and then the FT of the along columns. In the discrete case, the Fourier transform of an image is a complex image with a real and an imaginary part. We usually represent the modulus of the image, and sometimes its phase.

If is the value of a pixel of the FT, we have where is the real part and the imaginary part.

The image of modulus, called the spectrum is defined as:

and the phase image as:

The Fourier transform may be written using an exponential notation:

The modulus is centred: the frequency (0,0) is placed at the center of the image. A negative frequency -u corresponds to the positive N-u frequency:

The modulus at point (0,0) is proportional to the mean of the image and has no significance from the frequency point of view. The transform usually has large values in the vicinity of the center and very low values elsewhere. This unequal dynamic distribution may make it necessary to transform the modulus to see it better. One must be careful that high values do not hide low ones.

Some suggest the use of the logarithm of the modulus for display; others, histogram equalization. It is also possible to stretch the histogram between two given bounds (including 95 of the pixels, for example), and clamp the values outside the range.