←Select platform

FourierTransformDisplayCommand Class

Summary

This command is used to display the results of a Fast Fourier Transform or a Discrete Fourier analysis as an image.

Syntax

C#
VB
Objective-C
WinRT C#
C++
public sealed class FourierTransformDisplayCommand : Leadtools.Imageprocessing.Leadtools.ImageProcessing.IRasterCommand
@interface LTFourierTransformDisplayCommand : LTRasterCommand
function Leadtools.ImageProcessing.Core.FourierTransformDisplayCommand()

Remarks

This command is available in the Imaging Pro and above toolkits.

  • This command converts the Data property of the FourierTransformInformation object computed by FastFourierTransformCommand or DiscreteFourierTransformCommand commands into an image. The resulting image may be displayed such that it shows either the frequency harmonics amplitude data or phase data. The (0,0) frequency is located in the image center, positive X harmonics in the right half and positive Y harmonics located in the lower half of the image. Note: If a padding flag was used when creating the FourierTransformInformation instance and the image is not the same size as the frequency data after padding, the image will be re-created with the proper size.
  • This command does not work on regions. If the image has a region the command ignores it and processes the entire image.
  • The Run method image should be allocated prior to calling this command. The size of the image must be the same size as the image that was used to generate the information in the Data property of the FourierTransformInformation object.
  • 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 command will not threw an exception.
  • This command does not support signed data images.
  • This command does not support 32-bit grayscale images.

For more information, refer to Removing Noise.

Example

Runs the FourierTransformDisplayCommand on an image, applies the Discrete Fourier Transform command to it, and displays the data.

C#
VB
WinRT C#
Imports Leadtools 
Imports Leadtools.Codecs 
Imports Leadtools.ImageProcessing.Core 
 
    
Public Sub FourierTransformDisplayCommandExample() 
   Dim codecs As New RasterCodecs() 
   codecs.ThrowExceptionsOnInvalidImages = True 
   Dim leadImage As RasterImage = codecs.Load(Path.Combine(LEAD_VARS.ImagesDir, "ImageProcessingDemo\\FourierTransform.jpg")) 
 
   ' Prepare the command 
   Dim FTArray As FourierTransformInformation = New FourierTransformInformation(leadImage) 
   Dim rcRange As LeadRect = New LeadRect(0, 0, leadImage.Width - 1, leadImage.Height - 1) 
   Dim DFTcommand As DiscreteFourierTransformCommand = New DiscreteFourierTransformCommand 
   Dim command As FourierTransformDisplayCommand = New FourierTransformDisplayCommand 
 
   DFTcommand.FourierTransformInformation = FTArray 
   DFTcommand.Range = rcRange 
   DFTcommand.Flags = DiscreteFourierTransformCommandFlags.DiscreteFourierTransform _ 
   Or DiscreteFourierTransformCommandFlags.Gray _ 
   Or DiscreteFourierTransformCommandFlags.Range _ 
   Or DiscreteFourierTransformCommandFlags.InsideX _ 
   Or DiscreteFourierTransformCommandFlags.OutsideY 
   ' apply DFT 
   DFTcommand.Run(leadImage) 
 
   command.Flags = FourierTransformDisplayCommandFlags.Log Or FourierTransformDisplayCommandFlags.Magnitude 
   command.FourierTransformInformation = FTArray 
   'plot frequency magnitude 
   command.Run(leadImage) 
 
End Sub 
 
Public NotInheritable Class LEAD_VARS 
Public Const ImagesDir As String = "C:\Users\Public\Documents\LEADTOOLS Images" 
End Class 
using Leadtools; 
using Leadtools.Codecs; 
using Leadtools.ImageProcessing.Core; 
 
       
public void FourierTransformDisplayCommandExample() 
{ 
   // 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 
   FourierTransformInformation FTArray = new FourierTransformInformation(image); 
   LeadRect rcRange = new LeadRect(0, 0, image.Width - 1, image.Height - 1); 
   DiscreteFourierTransformCommand DFTcommand = new DiscreteFourierTransformCommand(); 
   FourierTransformDisplayCommand  command = new FourierTransformDisplayCommand(); 
 
   DFTcommand.FourierTransformInformation = FTArray; 
   DFTcommand.Range = rcRange; 
   DFTcommand.Flags = DiscreteFourierTransformCommandFlags.DiscreteFourierTransform |  
      DiscreteFourierTransformCommandFlags.Gray    |  
      DiscreteFourierTransformCommandFlags.Range   |  
      DiscreteFourierTransformCommandFlags.InsideX |  
      DiscreteFourierTransformCommandFlags.InsideY;  
   // apply DFT 
   DFTcommand.Run(image); 
 
   command.Flags = FourierTransformDisplayCommandFlags.Log |   FourierTransformDisplayCommandFlags.Magnitude; 
   command.FourierTransformInformation = FTArray; 
   //plot frequency magnitude. 
   command.Run(image); 
 
} 
 
static class LEAD_VARS 
{ 
public const string ImagesDir = @"C:\Users\Public\Documents\LEADTOOLS Images"; 
} 
using Leadtools; 
using Leadtools.Codecs; 
using Leadtools.ImageProcessing.Core; 
 
       
public async Task FourierTransformDisplayCommandExample() 
{ 
   // Load an image 
   RasterCodecs codecs = new RasterCodecs(); 
   codecs.ThrowExceptionsOnInvalidImages = true; 
   // Load the image 
   string srcFileName = @"Assets\Image1.cmp"; 
   StorageFile loadFile = await Tools.AppInstallFolder.GetFileAsync(srcFileName); 
   RasterImage image = await codecs.LoadAsync(LeadStreamFactory.Create(loadFile)); 
 
   // Prepare the command 
   FourierTransformInformation FTArray = new FourierTransformInformation(image); 
   LeadRect rcRange = LeadRectHelper.Create(0, 0, image.Width - 1, image.Height - 1); 
   DiscreteFourierTransformCommand DFTcommand = new DiscreteFourierTransformCommand(); 
   FourierTransformDisplayCommand  command = new FourierTransformDisplayCommand(); 
 
   DFTcommand.FourierTransformInformation = FTArray; 
   DFTcommand.Range = rcRange; 
   DFTcommand.Flags = DiscreteFourierTransformCommandFlags.DiscreteFourierTransform |  
      DiscreteFourierTransformCommandFlags.Gray    |  
      DiscreteFourierTransformCommandFlags.Range   |  
      DiscreteFourierTransformCommandFlags.InsideX |  
      DiscreteFourierTransformCommandFlags.InsideY;  
   // apply DFT 
   DFTcommand.Run(image); 
 
   command.Flags = FourierTransformDisplayCommandFlags.Log |   FourierTransformDisplayCommandFlags.Magnitude; 
   command.FourierTransformInformation = FTArray; 
   //plot frequency magnitude. 
   command.Run(image); 
 
} 

Requirements

Target Platforms

Products | Support | Contact Us | Copyright Notices
© 1991-2017 LEAD Technologies, Inc. All Rights Reserved.
Leadtools.ImageProcessing.Core Assembly
Click or drag to resize