psImageFFT.h

Go to the documentation of this file.
00001 /* @file  psImageFFT.h
00002  * @brief Contains FFT transform related functions for psImage
00003  *
00004  * @author Robert DeSonia, MHPCC
00005  *
00006  * @version $Revision: 1.7 $ $Name:  $
00007  * @date $Date: 2007/01/23 22:47:22 $
00008  * Copyright 2004-2005 Maui High Performance Computing Center, University of Hawaii
00009  */
00010 
00011 #ifndef PS_IMAGE_FFT_H
00012 #define PS_IMAGE_FFT_H
00013 
00014 #include "psImage.h"
00015 #include "psVectorFFT.h"               // for psFFTFlags
00016 
00017 /// @addtogroup MathOps Mathematical Operations
00018 /// @{
00019 
00020 /** Forward and reverse FFT calculations.
00021  *
00022  *  This takes as input the image of interest (in) and the direction
00023  *  (direction), which is specified by an enumerated type psFftDirection.
00024  *  The input image may be of type psF32 or psC32, the result is always
00025  *  psC32. If the input vector is psF32, the direction must be forward.
00026  *
00027  *  @return psImage* the FFT transformation result
00028  */
00029 psImage* psImageFFT(
00030     psImage* out,                      ///< a psImage to recycle.  If NULL, a new psImage is made.
00031     const psImage* image,              ///< the psImage to apply transform to
00032     psFFTFlags direction               ///< the direction of the transform
00033 );
00034 
00035 /** extract the real portion of a complex image
00036  *
00037  *  @return psImage*   real portion of the input image.
00038  */
00039 psImage* psImageReal(
00040     psImage* out,                      ///< a psImage to recycle.  If NULL, a new psImage is made.
00041     const psImage* in                  ///< the psImage to extract real portion from
00042 );
00043 
00044 /** extract the imaginary portion of a complex image
00045  *
00046  *  @return psImage*   imaginary portion of the input image.
00047  */
00048 psImage* psImageImaginary(
00049     psImage* out,                      ///< a psImage to recycle.  If NULL, a new psImage is made.
00050     const psImage* in                  ///< the psImage to extract imaginary portion from
00051 );
00052 
00053 /** creates a complex image from separate real and imaginary plane images
00054  *
00055  *  @return psImage*   resulting complex image
00056  */
00057 psImage* psImageComplex(
00058     psImage* out,                      ///< a psImage to recycle.  If NULL, a new psImage is made.
00059     const psImage* real,               ///< the real plane image
00060     const psImage* imag                ///< the imaginary plane image
00061 );
00062 
00063 /** computes the complex conjugate of an image
00064  *
00065  *  @return psImage*   the complex conjugate of the 'in' image
00066  */
00067 psImage* psImageConjugate(
00068     psImage* out,                      ///< a psImage to recycle.  If NULL, a new psImage is made.
00069     const psImage* in                  ///< the psImage to compute conjugate of
00070 );
00071 
00072 /** computes the power spectrum of an image
00073  *
00074  *  @return psImage*   the power spectrum of the 'in' image
00075  */
00076 psImage* psImagePowerSpectrum(
00077     psImage* out,                      ///< a psImage to recycle.  If NULL, a new psImage is made.
00078     const psImage* in                  ///< the psImage to power spectrum of
00079 );
00080 
00081 /// @}
00082 #endif // #ifndef PS_IMAGE_FFT_H

Generated on Fri Feb 2 22:24:35 2007 for pslib by  doxygen 1.5.1