Core Optical, Inc.
FourierTransform ComputeForwardBatchTransform Method Industrial Strength, Scientific Grade
Performs a forward batch-mode FFT of the specified channel in the SourceData object.

Namespace: PrecisionImage.FrequencyDomainProcessing
Assembly: PrecisionImage (in PrecisionImage.dll) Version: (

public FourierSpectrumBatch ComputeForwardBatchTransform(
	SourceData sourceData,
	int sourceChannel,
	int batchRows,
	int batchColumns,
	WindowFunction windowFunction = null,
	Int32Rect regionOfInterest = null


Type: PrecisionImage SourceData
A SourceData type representing the spatial domain image data.
Type: OnlineSystem Int32
An OnlineInt32 type indicating the channel from which the spectrum is to be computed.
Type: OnlineSystem Int32
An OnlineInt32 type indicating the number of individual spectra per column to compute.
Type: OnlineSystem Int32
An OnlineInt32 type indicating the number of individual spectra per row to compute.
windowFunction (Optional)
Type: PrecisionImage.WindowFunctions WindowFunction
A WindowFunction encapsulating the type of apodization window to be applied to the data. Default is no window.
regionOfInterest (Optional)
Type: OnlineSystem.Windows Int32Rect
An OnlineInt32Rect type specifying the region of the data to transform. Default is the entire data image.

Return Value

A FourierSpectrumBatch type containing the computed spectra of the input data.

OnlineSystem ArgumentNullExceptionThrown when sourceData is null
OnlineSystem ArgumentOutOfRangeExceptionThrown when sourceChannel referes to a channel that doesn't exist.
OnlineSystem ArgumentOutOfRangeException Thrown when the dimensions of regionOfInterest are not fully contained within sourceData.
OnlineSystem ArgumentOutOfRangeException Thrown when batchRows and/or batchColumns is less than 1.
OnlineSystem ArgumentOutOfRangeException Thrown when the region of interest height (or width) is not evenly divisible by the batch rows (or batch columns).
OnlineSystem ArgumentException Thrown when the individual spectra rows and columns are not powers-of-two in dimension.

Use this method to perform a batch-mode forward FFT of the data contained in the specified sourceChannel of sourceData using the current ProcessingMode property, and (optionally) pre-applying the specified WindowFunction to the data. The input region of interest is either the entire data image (by default) or a sub-region as specified by the regionOfInterest argument. In either case, the computed dimensions of the individual spectra (rows and columns) must be powers-of-two or an exception will result. The individual spectrum dimensions are a function of both the input data region of interest, as well as the specified number of batch rows and columns. Therefore, if the quotient of the region of interest width and the batch columns is not equal to a power-of-two value (or the quotient of the region of interest height and the specified batch rows is not a power-of-two value) an exception will result. In other words, the region of interest width and height - default or otherwise - must be an integer multiple of a power-of-two value. Lastly, if a window is specified for the windowFunction argument, the windowing operation is applied to each individual spatial domain tile in the batch grid prior to the forward transformation. Default execution is no windowing.

Once a forward transform has been computed, the returned FourierSpectrumBatch object can be used with a selection of methods in the FrequencyDomainUtilities class to operate on the spectra in a point-wise parallel fashion. In addition, individual spectra can be extracted from the batch and processed individually (see GetSpectrum(Int32, Int32)).

The spatial layout of the spectral batch is illustrated in the following figure:

See Also