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