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
1.5.1