44 double realVal, imagVal;
50 fftw_complex* indata = fftw_alloc_complex(
n);
51 fftw_complex* outdata = fftw_alloc_complex(
n);
58 fftw_plan fp = fftw_plan_dft_2d(w, h, indata, outdata, dir, flags);
66 cplx_band_idx = 2*band;
72 realBuf = (
double*) input->
getBuf(band);
77 realBuf = (
double*) input->
getBuf(cplx_band_idx);
78 imagBuf = (
double*) input->
getBuf(cplx_band_idx+1);
89 indata[i][0] =
sign*realBuf[i];
94 indata[i][0] =
sign*realBuf[i];
95 indata[i][1] =
sign*imagBuf[i];
110 realBuf = (
double*) output->
getBuf(cplx_band_idx);
111 imagBuf = (
double*) output->
getBuf(cplx_band_idx+1);
115 realBuf = (
double*) output->
getBuf(band);
126 realBuf[i] = outdata[i][0] / (double)
n;
127 imagBuf[i] = outdata[i][1] / (double)
n;
131 realBuf[i] = outdata[i][0];
virtual ossim_uint32 getWidth() const
virtual ~ossimFftw3Filter()
virtual double getNullPixelValue(ossim_uint32 band=0) const
virtual ossim_uint32 getNumberOfBands() const
Real sign(Real x, Real y)
virtual void runFft(ossimRefPtr< ossimImageData > &input, ossimRefPtr< ossimImageData > &output)
virtual ossim_uint32 getHeight() const
ossimFftw3Filter(ossimObject *owner=NULL)
os2<< "> n<< " > nendobj n
unsigned int ossim_uint32
RTTI_DEF1(ossimFftw3Filter, "ossimFftw3Filter", ossimFftFilter)
virtual const void * getBuf() const
ossimFftFilterDirectionType theDirectionType