X-Git-Url: http://git.kpe.io/?a=blobdiff_plain;f=include%2Fimagefile.h;h=945bdbfd03e55df5d1480adec8d6e1394792ed49;hb=9f7d379c2b03f3c09907cfd885072433e0428042;hp=7c7daba56eae43d69172b47763cbb2dd69fa7a28;hpb=5c6b29ab4885308cc3381af6e0a68f4804956d2e;p=ctsim.git diff --git a/include/imagefile.h b/include/imagefile.h index 7c7daba..945bdbf 100644 --- a/include/imagefile.h +++ b/include/imagefile.h @@ -9,7 +9,7 @@ ** This is part of the CTSim program ** Copyright (C) 1983-2000 Kevin Rosenberg ** -** $Id: imagefile.h,v 1.24 2000/12/29 15:45:06 kevin Exp $ +** $Id: imagefile.h,v 1.26 2001/01/01 10:14:34 kevin Exp $ ** ** This program is free software; you can redistribute it and/or modify ** it under the terms of the GNU General Public License (version 2) as @@ -46,15 +46,21 @@ class F32Image : public Array2dFile { public: - F32Image (int nx, int ny); + F32Image (int nx, int ny, int dataType = Array2dFile::DATA_TYPE_REAL); F32Image (void); - kfloat32** getArray (void) - { return (kfloat32**) (m_arrayData); } - - kfloat32** const getArray (void) const - { return (kfloat32** const) (m_arrayData); } - + kfloat32** getArray (void) + { return (kfloat32**) (m_arrayData); } + + kfloat32** const getArray (void) const + { return (kfloat32** const) (m_arrayData); } + + kfloat32** getImaginaryArray (void) + { return (kfloat32**) (m_imaginaryArrayData); } + + kfloat32** const getImaginaryArray (void) const + { return (kfloat32** const) (m_imaginaryArrayData); } + #ifdef HAVE_MPI MPI::Datatype getMPIDataType (void) const { return MPI::FLOAT; } @@ -70,15 +76,21 @@ class F64Image : public Array2dFile { public: - F64Image (int nx, int ny); + F64Image (int nx, int ny, int dataType = Array2dFile::DATA_TYPE_REAL); F64Image (void); - kfloat64** getArray (void) - { return (kfloat64**) (m_arrayData); } - - kfloat64** const getArray (void) const - { return (kfloat64** const) (m_arrayData); } - + kfloat64** getArray (void) + { return (kfloat64**) (m_arrayData); } + + kfloat64** const getArray (void) const + { return (kfloat64** const) (m_arrayData); } + + kfloat64** getImaginaryArray (void) + { return (kfloat64**) (m_imaginaryArrayData); } + + kfloat64** const getImaginaryArray (void) const + { return (kfloat64** const) (m_imaginaryArrayData); } + #ifdef HAVE_MPI MPI::Datatype getMPIDataType (void) const { return MPI::DOUBLE; } @@ -116,10 +128,14 @@ class ImageFile : public ImageFileBase ImageFile (void) : ImageFileBase () {} + + bool convertRealToComplex (); + bool convertComplexToReal (); void filterResponse (const char* const domainName, double bw, const char* const filterName, double filt_param); - void statistics (double& min, double& max, double& mean, double& mode, double& median, double& stddev) const; + void statistics (double& min, double& max, double& mean, double& mode, double& median, double& stddev) const; + void statistics (ImageFileArrayConst v, double& min, double& max, double& mean, double& mode, double& median, double& stddev) const; void getMinMax (double& min, double& max) const; void printStatistics (std::ostream& os) const; bool comparativeStatistics (const ImageFile& imComp, double& d, double& r, double& e) const; @@ -135,8 +151,14 @@ class ImageFile : public ImageFileBase bool square (ImageFile& result) const; bool log (ImageFile& result) const; bool exp (ImageFile& result) const; - bool FFTMagnitude (ImageFile& result) const; - bool FFTPhase (ImageFile& result) const; + bool fourier (ImageFile& result) const; + bool inverseFourier (ImageFile& result) const; +#ifdef HAVE_FFTW + bool fft (ImageFile& result) const; + bool ifft (ImageFile& result) const; +#endif + bool magnitude (ImageFile& result) const; + bool phase (ImageFile& result) const; int display (void) const; int displayScaling (const int scaleFactor, ImageFileValue pmin, ImageFileValue pmax) const;