﻿ FourierTransformInformation Class | Leadtools.ImageProcessing.Core | Raster, Medical, Document Help
←Select platform
In This Topic ▼

# FourierTransformInformation Class

Summary
The FourierTransformInformation class contains information about the complex 2D array that will hold the frequency components of the image.
Syntax
C#
Objective-C
C++/CLI
Java
Python
``public class FourierTransformInformation : IDisposable ``
``@interface LTFourierTransformInformation : NSObject ``
``public class FourierTransformInformation ``
``public ref class FourierTransformInformation : public System.IDisposable   ``
``class FourierTransformInformation(IDisposable): ``
Remarks

The Fourier Transform commands return an instance of FourierTransformInformation. This object holds all the frequency domain information (harmonics information). Each Data element holds the information about the harmonic frequency at its location. This information is an instance of the Complex structure, which contains the real and imaginary values of the harmonic.

To obtain the magnitude, take the square root of the sum of the squared real and imaginary values.

To calculate the phase, find the arctan of (imaginary/real).

To get/set the value of a harmonic at a specific location, use the GetDataOf / SetData methods. (0,0) is the first element.

The frequency harmonics are sorted as follows:

````LowX LowY---------HighXLowY----------LowXLowY `
`|                     |                  | `
`|                     |                  | `
`|                     |                  | `
`|                     |                  | `
`|                     |                  | `
`|                     |                  | `
`LowXHighY---------HighXHighY---------LowXHighY `
` `
`|                     |                  | `
`|                     |                  | `
`|                     |                  | `
`|                     |                  | `
`|                     |                  | `
`LowXLowY----------HighXLowY----------LowXLowY ````

This structure is used only by the Fourier Transform methods:

This command does not support 32-bit grayscale images.

Example
C#
Java
````using Leadtools; `
`using Leadtools.ImageProcessing; `
`using Leadtools.Codecs; `
`using Leadtools.ImageProcessing.Core; `
` `
`public void FastFourierTransformCommandExample() `
`{ `
`   // Load an image `
`   RasterCodecs codecs = new RasterCodecs(); `
`   codecs.ThrowExceptionsOnInvalidImages = true; `
` `
`   RasterImage image = codecs.Load(Path.Combine(LEAD_VARS.ImagesDir, @"ImageProcessingDemo\FourierTransform.jpg")); `
` `
`   // Prepare the command `
`   // Resize the image to make sure the image's dimensions are power of two. `
`   SizeCommand sizecommand = new SizeCommand(256, 256, Leadtools.RasterSizeFlags.Bicubic); `
` `
`   sizecommand.Run(image); `
` `
`   FourierTransformInformation FTArray = new FourierTransformInformation(image); `
`   // Apply FFT. `
`   FastFourierTransformCommand command = new FastFourierTransformCommand(FTArray, FastFourierTransformCommandFlags.FastFourierTransform | FastFourierTransformCommandFlags.Gray); `
`   command.Run(image); `
`   LeadRect rcRect = new LeadRect(0, 0, image.Width / 2, image.Height / 2); `
`   FrequencyFilterCommand FreqCommand = new FrequencyFilterCommand(FTArray, rcRect, FrequencyFilterCommandFlags.InsideX | FrequencyFilterCommandFlags.OutsideY); `
` `
`   FastFourierTransformCommand InvCommand = new FastFourierTransformCommand(FTArray, FastFourierTransformCommandFlags.InverseFastFourierTransform | FastFourierTransformCommandFlags.Gray | FastFourierTransformCommandFlags.Scale | `
`         FastFourierTransformCommandFlags.Both); `
`   InvCommand.Run(image); `
` `
`} `
` `
`static class LEAD_VARS `
`{ `
`   public const string ImagesDir = @"C:\LEADTOOLS23\Resources\Images"; `
`} ````
```` `
`import java.io.File; `
`import java.io.IOException; `
` `
`import org.junit.*; `
`import org.junit.runner.JUnitCore; `
`import org.junit.runner.Result; `
`import org.junit.runner.notification.Failure; `
`import static org.junit.Assert.assertTrue; `
` `
`import leadtools.*; `
`import leadtools.codecs.*; `
`import leadtools.imageprocessing.*; `
`import leadtools.imageprocessing.core.*; `
` `
` `
`public void fastFourierTransformCommandExample() { `
`    final String LEAD_VARS_IMAGES_DIR = "C:\\LEADTOOLS23\\Resources\\Images"; `
` `
`    // Load an image `
`    RasterCodecs codecs = new RasterCodecs(); `
`    codecs.setThrowExceptionsOnInvalidImages(true); `
` `
`    RasterImage image = codecs.load(combine(LEAD_VARS_IMAGES_DIR, "FourierTransform.jpg")); `
` `
`    // Prepare the command `
`    // Resize the image to make sure the image's dimensions are power of two. `
`    SizeCommand sizeCommand = new SizeCommand(256, 256, RasterSizeFlags.BICUBIC.getValue()); `
`    sizeCommand.run(image); `
` `
`    FourierTransformInformation ftArray = new FourierTransformInformation(image); `
` `
`    // Apply FFT. `
`    FastFourierTransformCommand command = new FastFourierTransformCommand(); `
`    command.setFourierTransformInformation(ftArray); `
`    command.setFlags(FastFourierTransformCommandFlags.FAST_FOURIER_TRANSFORM.getValue() `
`            | FastFourierTransformCommandFlags.GRAY.getValue()); `
`    command.run(image); `
` `
`    FastFourierTransformCommand invCommand = new FastFourierTransformCommand(ftArray, `
`            FastFourierTransformCommandFlags.INVERSE_FAST_FOURIER_TRANSFORM.getValue() `
`                    | FastFourierTransformCommandFlags.GRAY.getValue() `
`                    | FastFourierTransformCommandFlags.SCALE.getValue() `
`                    | FastFourierTransformCommandFlags.BOTH.getValue()); `
`    invCommand.run(image); `
` `
`    // Save the image `
`    String outputFileName = combine(LEAD_VARS_IMAGES_DIR, "FourierTransform_constructorResult.jpg"); `
`    codecs.save(image, outputFileName, RasterImageFormat.JPEG, 0); `
` `
`    System.out.println("Command run and image saved to " + outputFileName); `
`    assertTrue(new File(outputFileName).exists()); `
`} ````
Requirements
Help Version 23.0.2024.3.3