** This is part of the CTSim program
** Copyright (C) 1983-2000 Kevin Rosenberg
**
-** $Id: imagefile.h,v 1.25 2000/12/29 19:30:08 kevin Exp $
+** $Id: imagefile.h,v 1.27 2001/01/02 05:34:57 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
class ImageFile : public ImageFileBase
-{
- public:
+{\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
+
ImageFile (int nx, int ny)
: ImageFileBase (nx, ny)
{}
bool convertRealToComplex ();\r
bool convertComplexToReal ();\r
- void filterResponse (const char* const domainName, double bw, const char* const filterName, double filt_param);
+ 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 (ImageFileArrayConst v, double& min, double& max, double& mean, double& mode, double& median, double& stddev) const;\r
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 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 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
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
#if HAVE_PNG
- void writeImagePNG (const char *outfile, int bitdepth, int nxcell, int nycell, double densmin, double densmax);
+ bool writeImagePNG (const char* const outfile, int bitdepth, int nxcell, int nycell, double densmin, double densmax);
#endif
#if HAVE_GD
- void writeImageGIF (const char *outfile, int nxcell, int nycell, double densmin, double densmax);
+ bool writeImageGIF (const char* const outfile, int nxcell, int nycell, double densmin, double densmax);
#endif
- void writeImagePGM (const char *outfile, int nxcell, int nycell, double densmin, double densmax);
- void writeImagePGMASCII (const char *outfile, int nxcell, int nycell, double densmin, double densmax);
+ bool writeImagePGM (const char* const outfile, int nxcell, int nycell, double densmin, double densmax);
+ bool writeImagePGMASCII (const char* const outfile, int nxcell, int nycell, double densmin, double densmax);
};