<< Chapter < Page | Chapter >> Page > |
In Part 1 of this series, I extended the concept of the Fourier transform from the time domain into the space domain. I pointed out that while the time domainis one-dimensional, the space domain is thee-dimensional. However, in order to keep the complexity of this module in check, we will assume that space is onlytwo-dimensional. This will serve us well later for such tasks as image processing.
(Three-dimensional Fourier transforms are beyond the scope of this module. I will write a module on using Fourier transforms inthree-dimensional space later if I have the time.)
Although the space domain can be (and often is) complex, many interesting problems, (such as photographic image processing) can be dealt with under the assumption that the space domain is purely real. We willmake that assumption in this module. This assumption will allow us to simplify our computations when performing the 2D Fourier transform to transform our datafrom the space domain into the wavenumber domain.
I will present and explain two complete Java programs in this module. The first program is a single class named ImgMod30 , which provides the capability to perform forward and inverse Fourier transforms onthree-dimensional surfaces. In addition, the class provides a method that can be used to reformat the wavenumber spectrum to make it more suitable for display.
The second program is named ImgMod31 . This is an executable program whose purpose is to exercise and to test the ImgMod30 class using several examples for which the results should already be known.
This class provides 2D Fourier transform capability that can be used for image processing and other purposes. The class provides three static methods:
The class was tested using JDK 1.8 and Windows 7. The class uses the static import capability that was introduced in J2SE 5.0. Therefore, it should notcompile using earlier versions of the compiler.
Notification Switch
Would you like to follow the 'Digital signal processing - dsp' conversation and receive update notifications?