X-Git-Url: http://git.kpe.io/?p=ctsim.git;a=blobdiff_plain;f=include%2Fimagefile.h;h=3587f1cde01e5cc90b905ea5bafd9874200ca4d5;hp=57d093f83c397499e90c01490596a70241c8fa6a;hb=9b2bb510160bdb56f04847f5b55ab61dd8a47976;hpb=67a6c34b5a6f38d34e8cbe66091853f453fd2d7a diff --git a/include/imagefile.h b/include/imagefile.h index 57d093f..3587f1c 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.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 @@ -119,8 +119,30 @@ typedef const kfloat32* ImageFileColumnConst; class ImageFile : public ImageFileBase -{ - public: +{ +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) {} @@ -132,10 +154,10 @@ class ImageFile : public ImageFileBase bool convertRealToComplex (); bool convertComplexToReal (); - 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; - void statistics (ImageFileArrayConst& v, 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; @@ -146,6 +168,8 @@ class ImageFile : public ImageFileBase 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; @@ -153,20 +177,26 @@ class ImageFile : public ImageFileBase 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; +#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; + + bool exportImage (const char* const pszFormat, const char* const pszFilename, int nxcell, int nycell, double densmin, double densmax); #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); };