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

# DiscreteFourierTransformCommand Class

Summary
Computes the Discrete Fourier transform of an image or the Inverse Discrete Fourier transform as specified by the flags.
Syntax
C#
Objective-C
C++/CLI
Python
``public class DiscreteFourierTransformCommand : RasterCommand ``
``@interface LTDiscreteFourierTransformCommand : LTRasterCommand ``
``public ref class DiscreteFourierTransformCommand : public RasterCommand   ``
``class DiscreteFourierTransformCommand(RasterCommand): ``
Remarks

This command is available in the Imaging and above toolkits.

• This command converts the image from the time domain to the frequency domain and vice versa using the Discrete Fourier Transform algorithm. Use the FastFourierTransformCommand to use a Fast Fourier Transform algorithm on an image.
• Before using this command, you need to construct an instance from FourierTransformInformation.
• The image can be transformed back into the original image minus the noise using the InverseDiscreteFourierTransform
• This command does not work on regions. If the image has a region the command ignores it and processes the entire image.
• This command does not support 12 and 16-bit grayscale and 48 and 64-bit color images. If the image is 12 and 16-bit grayscale and 48 and 64-bit color, the method will not threw an exception.
• This command does not support 32-bit grayscale images.
• This command does not support signed images.

### Calculating Master Channel Values

In order to speed up widely used image processing filters in LEADTOOLS, the grayscale value (master channel) of a colored image is calculated using the following formulas:

````#define CalcGrayValue(r, g, b) ((L_UCHAR)(((L_UCHAR) (((2 * (L_UINT) (r)) + (5 * (L_UINT) (g)) + (L_UINT) (b) + 4) / 8)))) `
`#define CalcGrayValue16(r, g, b) ((L_UINT16) (((2 * (L_UINT32) (r)) + (5 * (L_UINT32) (g)) + (L_UINT32) (b) + 4) / 8)) `
`#define CalcGrayValue32(r, g, b) ((L_UINT32) (((2 * (L_UINT32) (r)) + (5 * (L_UINT32) (g)) + (L_UINT32) (b) + 4) / 8)) ````

DFT Function - Before

DFT Function - After

View additional platform support for this DFT function.

Example

Run the DiscreteFourierTransformCommand on an image.

C#
````using Leadtools; `
`using Leadtools.Codecs; `
`using Leadtools.ImageProcessing.Core; `
` `
`public void DiscreteFourierTransformCommandExample() `
`{ `
`   // Load an image `
`   RasterCodecs codecs = new RasterCodecs(); `
`   codecs.ThrowExceptionsOnInvalidImages = true; `
` `
`   RasterImage image = codecs.Load(Path.Combine(LEAD_VARS.ImagesDir, "Master.jpg")); `
` `
`   // Prepare the command `
`   FourierTransformInformation FTArray = new FourierTransformInformation(image); `
`   LeadRect rcRange = new LeadRect(0, 0, image.Width - 1, image.Height - 1); `
`   DiscreteFourierTransformCommand command = new DiscreteFourierTransformCommand(); `
` `
`   command.FourierTransformInformation = FTArray; `
`   command.Range = rcRange; `
`   command.Flags = DiscreteFourierTransformCommandFlags.DiscreteFourierTransform | `
`      DiscreteFourierTransformCommandFlags.Gray | `
`      DiscreteFourierTransformCommandFlags.Range | `
`      DiscreteFourierTransformCommandFlags.InsideX | `
`      DiscreteFourierTransformCommandFlags.InsideY; `
`   //Apply DFT. `
` `
`   FourierTransformDisplayCommand disCommand = new FourierTransformDisplayCommand(); `
`   disCommand.Flags = FourierTransformDisplayCommandFlags.Log | FourierTransformDisplayCommandFlags.Magnitude; `
`   disCommand.FourierTransformInformation = command.FourierTransformInformation; `
`   // plot frequency magnitude `
`   disCommand.Run(image); `
` `
`} `
` `
`static class LEAD_VARS `
`{ `
`   public const string ImagesDir = @"C:\LEADTOOLS23\Resources\Images"; `
`} ````
Requirements
Help Version 23.0.2024.3.3