ImageScience 3.0.0

imagescience.fourier
Class FFT

java.lang.Object
  extended by imagescience.fourier.FFT

public class FFT
extends java.lang.Object

Computes forward and inverse Fourier transforms of images. The methods are based on the fast Fourier transform (FFT) and therefore accept only images whose size is an integer power of 2 in each direction in which the transformation is applied. Based on the algorithm described by W. H. Press, S. A. Teukolsky, W. T. Vetterling, B. P. Flannery, Numerical Recipes in C: The Art of Scientific Computing (2nd edition), Cambridge University Press, Cambridge, 1992, pp. 507-508.


Field Summary
 Messenger messenger
          The object used for message displaying.
 Progressor progressor
          The object used for progress displaying.
 
Constructor Summary
FFT()
          Default constructor.
 
Method Summary
 void forward(Image real, Image imag, Axes axes)
          Applies the forward Fourier transform to complex-valued images along the specified axes.
 void inverse(Image real, Image imag, Axes axes)
          Applies the inverse Fourier transform to complex-valued images along the specified axes.
 
Methods inherited from class java.lang.Object
equals, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Field Detail

messenger

public final Messenger messenger
The object used for message displaying.


progressor

public final Progressor progressor
The object used for progress displaying.

Constructor Detail

FFT

public FFT()
Default constructor.

Method Detail

forward

public void forward(Image real,
                    Image imag,
                    Axes axes)
Applies the forward Fourier transform to complex-valued images along the specified axes.

Parameters:
real - The real part of the complex-valued input image. The image is overwritten with the real component of the forward Fourier transform. Therefore this should be a FloatImage object.
imag - The imaginary part of the complex-valued input image. The image is overwritten with the imaginary component of the forward Fourier transform. Therefore this should be a FloatImage object.
axes - The axes along which the transform is to be applied. The transform is applied to each dimension for which the corresponding boolean field of this parameter is true.
Throws:
java.lang.IllegalStateException - If the images do not have the same size in each dimension or if their size is not an integer power of 2 in any of the directions in which the transform is to be applied.
java.lang.NullPointerException - If any of the parameters is null.

inverse

public void inverse(Image real,
                    Image imag,
                    Axes axes)
Applies the inverse Fourier transform to complex-valued images along the specified axes.

Parameters:
real - The real part of the complex-valued input image. The image is overwritten with the real component of the inverse Fourier transform. Therefore this should be a FloatImage object.
imag - The imaginary part of the complex-valued input image. The image is overwritten with the imaginary component of the inverse Fourier transform. Therefore this should be a FloatImage object.
axes - The axes along which the transform is to be applied. The transform is applied to each dimension for which the corresponding boolean field of this parameter is true.
Throws:
java.lang.IllegalStateException - If the images do not have the same size in each dimension or if their size is not an integer power of 2 in any of the directions in which the transform is to be applied.
java.lang.NullPointerException - If any of the parameters is null.

ImageScience 3.0.0

Copyright (C) Erik Meijering. Permission to use this software and corresponding documentation for educational, research, and not-for-profit purposes, without a fee and without a signed licensing agreement, is granted, subject to the following terms and conditions.

IT IS NOT ALLOWED TO REDISTRIBUTE, SELL, OR LEASE THIS SOFTWARE, OR DERIVATIVE WORKS THEREOF, WITHOUT PERMISSION IN WRITING FROM THE COPYRIGHT HOLDER. THE COPYRIGHT HOLDER IS FREE TO MAKE VERSIONS OF THE SOFTWARE AVAILABLE FOR A FEE OR COMMERCIALLY ONLY.

IN NO EVENT SHALL THE COPYRIGHT HOLDER BE LIABLE TO ANY PARTY FOR DIRECT, INDIRECT, SPECIAL, INCIDENTAL, OR CONSEQUENTIAL DAMAGES, OF ANY KIND WHATSOEVER, ARISING OUT OF THE USE OF THIS SOFTWARE AND ITS DOCUMENTATION, EVEN IF ADVISED OF THE POSSIBILITY THEREOF.

THE COPYRIGHT HOLDER SPECIFICALLY DISCLAIMS ANY WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE EXPRESS OR IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. THE SOFTWARE AND CORRESPONDING DOCUMENTATION IS PROVIDED "AS IS". THE COPYRIGHT HOLDER HAS NO OBLIGATION TO PROVIDE MAINTENANCE, SUPPORT, UPDATES, ENHANCEMENTS, OR MODIFICATIONS.