X-Git-Url: http://git.kpe.io/?p=ctsim.git;a=blobdiff_plain;f=include%2Fimagefile.h;h=f300cdba9bc8d43990a88b495edf1652cef4d0b4;hp=eaa69afa89e97556e7bea844ba5e0f669c784c35;hb=8a7697ce57b56cdc43698cd1241ad98d49f9b5ac;hpb=c00c639073653fac7463a88f2b000f263236550d diff --git a/include/imagefile.h b/include/imagefile.h index eaa69af..f300cdb 100644 --- a/include/imagefile.h +++ b/include/imagefile.h @@ -7,9 +7,9 @@ ** Date Started: June 2000 ** ** This is part of the CTSim program -** Copyright (C) 1983-2000 Kevin Rosenberg +** Copyright (c) 1983-2001 Kevin Rosenberg ** -** $Id: imagefile.h,v 1.28 2001/01/02 16:02:12 kevin Exp $ +** $Id$ ** ** 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 @@ -118,30 +118,56 @@ typedef const kfloat32* ImageFileColumnConst; #endif + class ImageFile : public ImageFileBase { private: - static const char* s_aszFormatName[]; - static const char* s_aszFormatTitle[]; - static const int s_iFormatCount; + static const char* s_aszExportFormatName[]; + static const char* s_aszExportFormatTitle[]; + static const int s_iExportFormatCount; + static const char* s_aszImportFormatName[]; + static const char* s_aszImportFormatTitle[]; + static const int s_iImportFormatCount; + + static void skipSpacePPM (FILE* fp); // skip space in a ppm file public: - static const int FORMAT_INVALID; - static const int FORMAT_PGM; - static const int FORMAT_PGMASCII; + static const int EXPORT_FORMAT_INVALID; + static const int IMPORT_FORMAT_INVALID; + static const int EXPORT_FORMAT_TEXT; + static const int EXPORT_FORMAT_PGM; + static const int EXPORT_FORMAT_PGMASCII; + static const int IMPORT_FORMAT_PPM; #if HAVE_PNG - static const int FORMAT_PNG; - static const int FORMAT_PNG16; + static const int EXPORT_FORMAT_PNG; + static const int EXPORT_FORMAT_PNG16; + static const int IMPORT_FORMAT_PNG; #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); +#if HAVE_CTN_DICOM + static const int EXPORT_FORMAT_DICOM; + static const int IMPORT_FORMAT_DICOM; +#endif + static const int EXPORT_FORMAT_RAW; + + static const int getExportFormatCount() {return s_iExportFormatCount;} + static const char** getExportFormatNameArray() {return s_aszExportFormatName;} + static const char** getExportFormatTitleArray() {return s_aszExportFormatTitle;} + static int convertExportFormatNameToID (const char* const ExportFormatName); + static const char* convertExportFormatIDToName (const int ExportFormatID); + static const char* convertExportFormatIDToTitle (const int ExportFormatID); + + static const int getImportFormatCount() {return s_iImportFormatCount;} + static const char** getImportFormatNameArray() {return s_aszImportFormatName;} + static const char** getImportFormatTitleArray() {return s_aszImportFormatTitle;} + static int convertImportFormatNameToID (const char* const ImportFormatName); + static const char* convertImportFormatIDToName (const int ImportFormatID); + static const char* convertImportFormatIDToTitle (const int ImportFormatID); + + static const double s_dRedGrayscaleFactor; + static const double s_dGreenGrayscaleFactor; + static const double s_dBlueGrayscaleFactor; ImageFile (int nx, int ny) : ImageFileBase (nx, ny) @@ -151,6 +177,8 @@ public: : ImageFileBase () {} + void getCenterCoordinates (unsigned int& iXCenter, unsigned int& iYCenter); + bool convertRealToComplex (); bool convertComplexToReal (); @@ -180,23 +208,38 @@ public: #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; + bool real (ImageFile& result) const; + bool imaginary (ImageFile& result) const; bool exportImage (const char* const pszFormat, const char* const pszFilename, int nxcell, int nycell, double densmin, double densmax); -#if HAVE_PNG + bool importImage (const char* const pszFormat, const char* const pszFilename); + +#ifdef HAVE_PNG bool writeImagePNG (const char* const outfile, int bitdepth, int nxcell, int nycell, double densmin, double densmax); + bool readImagePNG (const char* const pszFile); #endif -#if HAVE_GD +#ifdef HAVE_GD bool writeImageGIF (const char* const outfile, int nxcell, int nycell, double densmin, double densmax); #endif 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); + bool readImagePPM (const char* const pszFile); + bool writeImageRaw(const char* const outfile, int nxcell, int nycell); + bool writeImageText (const char* const outfile); + + static double redGrayscaleFactor() {return s_dRedGrayscaleFactor;} + static double greenGrayscaleFactor() {return s_dGreenGrayscaleFactor;} + static double blueGrayscaleFactor() {return s_dBlueGrayscaleFactor;} + static double colorToGrayscale (double r, double g, double b) + { return r * s_dRedGrayscaleFactor + g * s_dGreenGrayscaleFactor + b * s_dBlueGrayscaleFactor; } };