00001 /* 00002 * 00003 * Copyright (C) 1996-2005, OFFIS 00004 * 00005 * This software and supporting documentation were developed by 00006 * 00007 * Kuratorium OFFIS e.V. 00008 * Healthcare Information and Communication Systems 00009 * Escherweg 2 00010 * D-26121 Oldenburg, Germany 00011 * 00012 * THIS SOFTWARE IS MADE AVAILABLE, AS IS, AND OFFIS MAKES NO WARRANTY 00013 * REGARDING THE SOFTWARE, ITS PERFORMANCE, ITS MERCHANTABILITY OR 00014 * FITNESS FOR ANY PARTICULAR USE, FREEDOM FROM ANY COMPUTER DISEASES OR 00015 * ITS CONFORMITY TO ANY SPECIFICATION. THE ENTIRE RISK AS TO QUALITY AND 00016 * PERFORMANCE OF THE SOFTWARE IS WITH THE USER. 00017 * 00018 * Module: dcmimgle 00019 * 00020 * Author: Joerg Riesmeier 00021 * 00022 * Purpose: DicomCIELABFunction (Header) 00023 * 00024 * Last Update: $Author: meichel $ 00025 * Update Date: $Date: 2005/12/08 16:47:33 $ 00026 * CVS/RCS Revision: $Revision: 1.12 $ 00027 * Status: $State: Exp $ 00028 * 00029 * CVS/RCS Log at end of file 00030 * 00031 */ 00032 00033 00034 #ifndef DICIEFN_H 00035 #define DICIEFN_H 00036 00037 #include "dcmtk/config/osconfig.h" 00038 00039 #include "dcmtk/dcmimgle/didispfn.h" 00040 #include "dcmtk/dcmimgle/dicielut.h" 00041 00042 00043 /*---------------------* 00044 * class declaration * 00045 *---------------------*/ 00046 00049 class DiCIELABFunction 00050 : public DiDisplayFunction 00051 { 00052 00053 public: 00054 00066 DiCIELABFunction(const char *filename, 00067 const E_DeviceType deviceType = EDT_Monitor, 00068 const signed int ord = -1); 00069 00081 DiCIELABFunction(const double *val_tab, 00082 const unsigned long count, 00083 const Uint16 max = 255, 00084 const E_DeviceType deviceType = EDT_Monitor, 00085 const signed int ord = 0); 00086 00099 DiCIELABFunction(const Uint16 *ddl_tab, 00100 const double *val_tab, 00101 const unsigned long count, 00102 const Uint16 max = 255, 00103 const E_DeviceType deviceType = EDT_Monitor, 00104 const signed int ord = 0); 00105 00115 DiCIELABFunction(const double val_min, 00116 const double val_max, 00117 const unsigned long count = 256, 00118 const E_DeviceType deviceType = EDT_Monitor, 00119 const signed int ord = 0); 00120 00123 virtual ~DiCIELABFunction(); 00124 00132 int writeCurveData(const char *filename, 00133 const OFBool mode = OFTrue); 00134 00135 00136 protected: 00137 00144 DiDisplayLUT *getDisplayLUT(unsigned long count); 00145 00146 00147 private: 00148 00149 // --- declarations to avoid compiler warnings 00150 00151 DiCIELABFunction(const DiDisplayFunction &); 00152 DiCIELABFunction &operator=(const DiDisplayFunction &); 00153 }; 00154 00155 00156 #endif 00157 00158 00159 /* 00160 * 00161 * CVS/RCS Log: 00162 * $Log: diciefn.h,v $ 00163 * Revision 1.12 2005/12/08 16:47:33 meichel 00164 * Changed include path schema for all DCMTK header files 00165 * 00166 * Revision 1.11 2003/12/08 18:15:58 joergr 00167 * Removed leading underscore characters from preprocessor symbols (reserved 00168 * symbols). Updated copyright header. 00169 * 00170 * Revision 1.10 2002/07/19 08:24:21 joergr 00171 * Enhanced/corrected comments. 00172 * 00173 * Revision 1.9 2002/07/18 12:26:30 joergr 00174 * Added support for hardcopy and softcopy input devices (camera and scanner). 00175 * Added polygonal curve fitting algorithm as an alternate interpolation 00176 * method. 00177 * 00178 * Revision 1.8 2002/07/02 16:23:41 joergr 00179 * Added support for hardcopy devices to the calibrated output routines. 00180 * 00181 * Revision 1.7 2001/06/01 15:49:39 meichel 00182 * Updated copyright header 00183 * 00184 * Revision 1.6 2000/03/08 16:24:13 meichel 00185 * Updated copyright header. 00186 * 00187 * Revision 1.5 2000/03/06 18:18:59 joergr 00188 * Moved get-method to base class, renamed method and made method virtual to 00189 * avoid hiding of methods (reported by Sun CC 4.2). 00190 * 00191 * Revision 1.4 1999/10/18 15:05:49 joergr 00192 * Enhanced command line tool dcmdspfn (added new options). 00193 * 00194 * Revision 1.3 1999/10/18 10:15:49 joergr 00195 * Moved min/max value determination to display function base class. Now the 00196 * actual min/max values are also used for GSDFunction (instead of first and 00197 * last luminance value). 00198 * 00199 * Revision 1.2 1999/09/17 12:08:22 joergr 00200 * Added/changed/completed DOC++ style comments in the header files. 00201 * 00202 * Revision 1.1 1999/09/10 08:50:22 joergr 00203 * Added support for CIELAB display function. Restructured class hierarchy 00204 * for display functions. 00205 * 00206 * 00207 */