00001 /* 00002 * 00003 * Copyright (C) 1996-2010, OFFIS e.V. 00004 * All rights reserved. See COPYRIGHT file for details. 00005 * 00006 * This software and supporting documentation were developed by 00007 * 00008 * OFFIS e.V. 00009 * R&D Division Health 00010 * Escherweg 2 00011 * D-26121 Oldenburg, Germany 00012 * 00013 * 00014 * Module: dcmimgle 00015 * 00016 * Author: Joerg Riesmeier 00017 * 00018 * Purpose: DicomCIELABFunction (Header) 00019 * 00020 * Last Update: $Author: joergr $ 00021 * Update Date: $Date: 2010-10-14 13:16:25 $ 00022 * CVS/RCS Revision: $Revision: 1.13 $ 00023 * Status: $State: Exp $ 00024 * 00025 * CVS/RCS Log at end of file 00026 * 00027 */ 00028 00029 00030 #ifndef DICIEFN_H 00031 #define DICIEFN_H 00032 00033 #include "dcmtk/config/osconfig.h" 00034 00035 #include "dcmtk/dcmimgle/didispfn.h" 00036 #include "dcmtk/dcmimgle/dicielut.h" 00037 00038 00039 /*---------------------* 00040 * class declaration * 00041 *---------------------*/ 00042 00045 class DiCIELABFunction 00046 : public DiDisplayFunction 00047 { 00048 00049 public: 00050 00062 DiCIELABFunction(const char *filename, 00063 const E_DeviceType deviceType = EDT_Monitor, 00064 const signed int ord = -1); 00065 00077 DiCIELABFunction(const double *val_tab, 00078 const unsigned long count, 00079 const Uint16 max = 255, 00080 const E_DeviceType deviceType = EDT_Monitor, 00081 const signed int ord = 0); 00082 00095 DiCIELABFunction(const Uint16 *ddl_tab, 00096 const double *val_tab, 00097 const unsigned long count, 00098 const Uint16 max = 255, 00099 const E_DeviceType deviceType = EDT_Monitor, 00100 const signed int ord = 0); 00101 00111 DiCIELABFunction(const double val_min, 00112 const double val_max, 00113 const unsigned long count = 256, 00114 const E_DeviceType deviceType = EDT_Monitor, 00115 const signed int ord = 0); 00116 00119 virtual ~DiCIELABFunction(); 00120 00128 int writeCurveData(const char *filename, 00129 const OFBool mode = OFTrue); 00130 00131 00132 protected: 00133 00140 DiDisplayLUT *getDisplayLUT(unsigned long count); 00141 00142 00143 private: 00144 00145 // --- declarations to avoid compiler warnings 00146 00147 DiCIELABFunction(const DiDisplayFunction &); 00148 DiCIELABFunction &operator=(const DiDisplayFunction &); 00149 }; 00150 00151 00152 #endif 00153 00154 00155 /* 00156 * 00157 * CVS/RCS Log: 00158 * $Log: diciefn.h,v $ 00159 * Revision 1.13 2010-10-14 13:16:25 joergr 00160 * Updated copyright header. Added reference to COPYRIGHT file. 00161 * 00162 * Revision 1.12 2005/12/08 16:47:33 meichel 00163 * Changed include path schema for all DCMTK header files 00164 * 00165 * Revision 1.11 2003/12/08 18:15:58 joergr 00166 * Removed leading underscore characters from preprocessor symbols (reserved 00167 * symbols). Updated copyright header. 00168 * 00169 * Revision 1.10 2002/07/19 08:24:21 joergr 00170 * Enhanced/corrected comments. 00171 * 00172 * Revision 1.9 2002/07/18 12:26:30 joergr 00173 * Added support for hardcopy and softcopy input devices (camera and scanner). 00174 * Added polygonal curve fitting algorithm as an alternate interpolation 00175 * method. 00176 * 00177 * Revision 1.8 2002/07/02 16:23:41 joergr 00178 * Added support for hardcopy devices to the calibrated output routines. 00179 * 00180 * Revision 1.7 2001/06/01 15:49:39 meichel 00181 * Updated copyright header 00182 * 00183 * Revision 1.6 2000/03/08 16:24:13 meichel 00184 * Updated copyright header. 00185 * 00186 * Revision 1.5 2000/03/06 18:18:59 joergr 00187 * Moved get-method to base class, renamed method and made method virtual to 00188 * avoid hiding of methods (reported by Sun CC 4.2). 00189 * 00190 * Revision 1.4 1999/10/18 15:05:49 joergr 00191 * Enhanced command line tool dcmdspfn (added new options). 00192 * 00193 * Revision 1.3 1999/10/18 10:15:49 joergr 00194 * Moved min/max value determination to display function base class. Now the 00195 * actual min/max values are also used for GSDFunction (instead of first and 00196 * last luminance value). 00197 * 00198 * Revision 1.2 1999/09/17 12:08:22 joergr 00199 * Added/changed/completed DOC++ style comments in the header files. 00200 * 00201 * Revision 1.1 1999/09/10 08:50:22 joergr 00202 * Added support for CIELAB display function. Restructured class hierarchy 00203 * for display functions. 00204 * 00205 * 00206 */