FourierFiltering¶
Support |
|
|---|---|
Required licenses |
EasyImage |
Recommended images |
|
Location |
|
Purpose¶
This sample program demonstrates how to:
Compute the direct Fourier transform.
Compute the inverse Fourier transform.
The process steps are:
Load a grayscale image and a mask.
Compute the direct Fourier transform on the grayscale image.
Apply the mask on the frequency domain of the image using the method
Maskof theEFourierImage.Compute the inverse Fourier transform of this masked frequency image.
Code highlights¶
Compute the direct Fourier transform.
EImageBW8 grayscale; // should be already loaded EFourierImage frequencyImage(grayscale.GetWidth() * 2, grayscale.GetHeight()); frequency.SetFrequentialDomainFormat(EFrequentialDomainFormat_ComplexExtended); EFourierTransformer fourier; fourier.DirectTransform(grayscale, frequency); frequencyImage.Shift(); // optional, depends on your mask
Mask the image.
EImageBW8 mask; // should be already loaded EFourierImage maskedFrequency; frequencyImage.Mask(maskedFrequency, mask); maskedFrequency.InverseShift(); // optional, depends on your mask
Compute the inverse Fourier transform.
EImageBW8 filtered; filtered.SetSize(grayscale.GetWidth(),grayscale.GetHeight()); EFourierTransformer fourier; Fourier.InverseTransform(maskedFrequency, filtered);
(Optional) Visualize the frequency image.
EImageBW8 magnitude(grayscale.GetWidth(), grayscale.GetHeight()); EImageBW8 phase(grayscale.GetWidth(), grayscale.GetHeight()); frequencyImage.ComputeMagnitude(magnitude); // magnitude can now be saved or drawn using a draw adapter frequencyImage.ComputePhase(phase); // phase can now be saved or drawn using a draw adapter