** This is part of the CTSim program
** Copyright (C) 1983-2000 Kevin Rosenberg
**
-** $Id: imagefile.h,v 1.27 2001/01/02 05:34:57 kevin Exp $
+** $Id: imagefile.h,v 1.30 2001/01/06 15:33:15 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
#ifndef IMAGEFILE_H
#define IMAGEFILE_H
-#ifndef MSVC\r
-#include <unistd.h>\r
-#endif\r
+#ifndef MSVC
+#include <unistd.h>
+#endif
#include <string>
#include <sys/types.h>
#include <fstream>
{
public:
F32Image (int nx, int ny, int dataType = Array2dFile::DATA_TYPE_REAL);
- F32Image (void);\r
-
- kfloat32** getArray (void)\r
- { return (kfloat32**) (m_arrayData); }\r
-\r
- kfloat32** const getArray (void) const\r
- { return (kfloat32** const) (m_arrayData); }\r
-\r
- kfloat32** getImaginaryArray (void)\r
- { return (kfloat32**) (m_imaginaryArrayData); }\r
-\r
- kfloat32** const getImaginaryArray (void) const\r
- { return (kfloat32** const) (m_imaginaryArrayData); }\r
-\r
+ F32Image (void);
+
+ 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; }
F64Image (int nx, int ny, int dataType = Array2dFile::DATA_TYPE_REAL);
F64Image (void);
- kfloat64** getArray (void)\r
- { return (kfloat64**) (m_arrayData); }\r
-\r
- kfloat64** const getArray (void) const\r
- { return (kfloat64** const) (m_arrayData); }\r
-\r
- kfloat64** getImaginaryArray (void)\r
- { return (kfloat64**) (m_imaginaryArrayData); }\r
-\r
- kfloat64** const getImaginaryArray (void) const\r
- { return (kfloat64** const) (m_imaginaryArrayData); }\r
-\r
+ 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; }
typedef kfloat64 ImageFileValue;
typedef kfloat64* ImageFileColumn;
typedef kfloat64** ImageFileArray;
-typedef kfloat64** const ImageFileArrayConst;\r
+typedef kfloat64** const ImageFileArrayConst;
typedef const kfloat64* ImageFileColumnConst;
#else
typedef F32Image ImageFileBase;
typedef kfloat32* ImageFileColumn;
typedef kfloat32** ImageFileArray;
typedef kfloat32** const ImageFileArrayConst;
-typedef const kfloat32* ImageFileColumnConst;\r
+typedef const kfloat32* ImageFileColumnConst;
#endif
class ImageFile : public ImageFileBase
-{\r
-private:\r
-\r
- static const char* s_aszFormatName[];\r
- static const char* s_aszFormatTitle[];\r
- static const int s_iFormatCount;\r
-
-public:\r
-\r
- static const int FORMAT_INVALID;\r
- static const int FORMAT_PGM;\r
- static const int FORMAT_PGMASCII;\r
-#if HAVE_PNG\r
- static const int FORMAT_PNG;\r
- static const int FORMAT_PNG16;\r
-#endif\r
-\r
- static const int getFormatCount() {return s_iFormatCount;}\r
- static const char** getFormatNameArray() {return s_aszFormatName;}\r
- static const char** getFormatTitleArray() {return s_aszFormatTitle;}\r
- static int convertFormatNameToID (const char* const formatName);\r
- static const char* convertFormatIDToName (const int formatID);\r
- static const char* convertFormatIDToTitle (const int formatID);\r
+{
+private:
+
+ static const char* s_aszFormatName[];
+ static const char* s_aszFormatTitle[];
+ static const int s_iFormatCount;
+
+public:
+
+ static const int FORMAT_INVALID;
+ static const int FORMAT_PGM;
+ static const int FORMAT_PGMASCII;
+#if HAVE_PNG
+ static const int FORMAT_PNG;
+ static const int FORMAT_PNG16;
+#endif
+
+ static const int getFormatCount() {return s_iFormatCount;}
+ static const char** getFormatNameArray() {return s_aszFormatName;}
+ static const char** getFormatTitleArray() {return s_aszFormatTitle;}
+ static int convertFormatNameToID (const char* const formatName);
+ static const char* convertFormatIDToName (const int formatID);
+ static const char* convertFormatIDToTitle (const int formatID);
ImageFile (int nx, int ny)
: ImageFileBase (nx, ny)
ImageFile (void)
: ImageFileBase ()
{}
-\r
- bool convertRealToComplex ();\r
- bool convertComplexToReal ();\r
+
+ void getCenterCoordinates (unsigned int& iXCenter, unsigned int& iYCenter);
+
+ bool convertRealToComplex ();
+ bool convertComplexToReal ();
void filterResponse (const char* const domainName, double bw, const char* const filterName, double filt_param, double dInputScale = 1., double dOutputScale = 1.);
- void statistics (double& min, double& max, double& mean, double& mode, double& median, double& stddev) const;\r
- void statistics (ImageFileArrayConst v, double& min, double& max, double& mean, double& mode, double& median, double& stddev) const;\r
+ 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;
bool printComparativeStatistics (const ImageFile& imComp, std::ostream& os) const;
-\r
+
bool subtractImages (const ImageFile& rRHS, ImageFile& result) const;
- bool addImages (const ImageFile& rRHS, ImageFile& result) const;\r
- bool multiplyImages (const ImageFile& rRHS, ImageFile& result) const;\r
- bool divideImages (const ImageFile& rRHS, ImageFile& result) const;\r
-\r
- bool scaleImage (ImageFile& result) const;\r
-\r
- bool invertPixelValues (ImageFile& result) const;\r
- bool sqrt (ImageFile& result) const;\r
- bool square (ImageFile& result) const;\r
- bool log (ImageFile& result) const;\r
- bool exp (ImageFile& result) const;\r
- bool fourier (ImageFile& result) const;\r
- bool inverseFourier (ImageFile& result) const;\r
-#ifdef HAVE_FFTW\r
- bool fft (ImageFile& result) const;\r
- bool ifft (ImageFile& result) const;\r
-#endif\r
- bool magnitude (ImageFile& result) const;\r
- bool phase (ImageFile& result) const;\r
-\r
+ bool addImages (const ImageFile& rRHS, ImageFile& result) const;
+ bool multiplyImages (const ImageFile& rRHS, ImageFile& result) const;
+ bool divideImages (const ImageFile& rRHS, ImageFile& result) const;
+
+ bool scaleImage (ImageFile& result) const;
+
+ bool invertPixelValues (ImageFile& result) const;
+ bool sqrt (ImageFile& result) const;
+ bool square (ImageFile& result) const;
+ bool log (ImageFile& result) const;
+ bool exp (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;
+ bool fftRows (ImageFile& result) const;
+ bool ifftRows (ImageFile& result) const;
+ bool fftCols (ImageFile& result) const;
+ bool ifftCols (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;
-\r
- bool exportImage (const char* const pszFormat, const char* const pszFilename, int nxcell, int nycell, double densmin, double densmax);\r
+
+ bool exportImage (const char* const pszFormat, const char* const pszFilename, int nxcell, int nycell, double densmin, double densmax);
#if HAVE_PNG
bool writeImagePNG (const char* const outfile, int bitdepth, int nxcell, int nycell, double densmin, double densmax);