OFFIS DCMTK  Version 3.6.0
digsdfn.h
1 /*
2  *
3  * Copyright (C) 1996-2010, OFFIS e.V.
4  * All rights reserved. See COPYRIGHT file for details.
5  *
6  * This software and supporting documentation were developed by
7  *
8  * OFFIS e.V.
9  * R&D Division Health
10  * Escherweg 2
11  * D-26121 Oldenburg, Germany
12  *
13  *
14  * Module: dcmimgle
15  *
16  * Author: Joerg Riesmeier
17  *
18  * Purpose: DicomGSDFunction (Header)
19  *
20  * Last Update: $Author: joergr $
21  * Update Date: $Date: 2010-10-14 13:16:26 $
22  * CVS/RCS Revision: $Revision: 1.17 $
23  * Status: $State: Exp $
24  *
25  * CVS/RCS Log at end of file
26  *
27  */
28 
29 
30 #ifndef DIGSDFN_H
31 #define DIGSDFN_H
32 
33 #include "dcmtk/config/osconfig.h"
34 
35 #include "dcmtk/dcmimgle/didispfn.h"
36 
37 #define INCLUDE_CSTDDEF /* For NULL */
38 #include "dcmtk/ofstd/ofstdinc.h"
39 
40 
41 /*---------------------*
42  * class declaration *
43  *---------------------*/
44 
48  : public DiDisplayFunction
49 {
50 
51  public:
52 
64  DiGSDFunction(const char *filename,
65  const E_DeviceType deviceType = EDT_Monitor,
66  const signed int ord = -1);
67 
79  DiGSDFunction(const double *val_tab,
80  const unsigned long count,
81  const Uint16 max = 255,
82  const E_DeviceType deviceType = EDT_Monitor,
83  const signed int ord = 0);
84 
97  DiGSDFunction(const Uint16 *ddl_tab,
98  const double *val_tab,
99  const unsigned long count,
100  const Uint16 max = 255,
101  const E_DeviceType deviceType = EDT_Monitor,
102  const signed int ord = 0);
103 
113  DiGSDFunction(const double val_min,
114  const double val_max,
115  const unsigned long count = 256,
116  const E_DeviceType deviceType = EDT_Monitor,
117  const signed int ord = 0);
118 
121  virtual ~DiGSDFunction();
122 
130  int writeCurveData(const char *filename,
131  const OFBool mode = OFTrue);
132 
142  int setAmbientLightValue(const double value);
143 
153  int setIlluminationValue(const double value);
154 
163  int setMinDensityValue(const double value);
164 
173  int setMaxDensityValue(const double value);
174 
181  static double getJNDIndex(const double lum);
182 
183 
184  protected:
185 
192  DiDisplayLUT *getDisplayLUT(unsigned long count);
193 
198  int calculateGSDF();
199 
204  int calculateGSDFSpline();
205 
211 
212 
213  private:
214 
216  double JNDMin;
218  double JNDMax;
219 
221  static const unsigned int GSDFCount;
223  double *GSDFValue;
225  double *GSDFSpline;
226 
227  // --- declarations to avoid compiler warnings
228 
229  DiGSDFunction(const DiGSDFunction &);
230  DiGSDFunction &operator=(const DiGSDFunction &);
231 };
232 
233 
234 #endif
235 
236 
237 /*
238  *
239  * CVS/RCS Log:
240  * $Log: digsdfn.h,v $
241  * Revision 1.17 2010-10-14 13:16:26 joergr
242  * Updated copyright header. Added reference to COPYRIGHT file.
243  *
244  * Revision 1.16 2010-03-01 09:08:46 uli
245  * Removed some unnecessary include directives in the headers.
246  *
247  * Revision 1.15 2005-12-08 16:47:40 meichel
248  * Changed include path schema for all DCMTK header files
249  *
250  * Revision 1.14 2003/12/08 18:21:00 joergr
251  * Removed leading underscore characters from preprocessor symbols (reserved
252  * symbols). Updated CVS header.
253  *
254  * Revision 1.13 2003/02/12 11:35:16 joergr
255  * Added Dmin/max support to CIELAB calibration routines.
256  *
257  * Revision 1.12 2003/02/11 10:01:14 joergr
258  * Added support for Dmin/max to calibration routines (required for printers).
259  *
260  * Revision 1.11 2002/07/19 08:24:21 joergr
261  * Enhanced/corrected comments.
262  *
263  * Revision 1.10 2002/07/18 12:30:01 joergr
264  * Added support for hardcopy and softcopy input devices (camera and scanner).
265  * Added polygonal curve fitting algorithm as an alternate interpolation
266  * method.
267  *
268  * Revision 1.9 2002/07/02 16:23:42 joergr
269  * Added support for hardcopy devices to the calibrated output routines.
270  *
271  * Revision 1.8 2001/06/01 15:49:41 meichel
272  * Updated copyright header
273  *
274  * Revision 1.7 2000/07/17 14:37:12 joergr
275  * Moved method getJNDIndex to public part of the interface.
276  *
277  * Revision 1.6 2000/03/08 16:24:15 meichel
278  * Updated copyright header.
279  *
280  * Revision 1.5 2000/03/06 18:19:36 joergr
281  * Moved get-method to base class, renamed method and made method virtual to
282  * avoid hiding of methods (reported by Sun CC 4.2).
283  *
284  * Revision 1.4 1999/10/18 15:05:51 joergr
285  * Enhanced command line tool dcmdspfn (added new options).
286  *
287  * Revision 1.3 1999/09/17 12:11:31 joergr
288  * Added/changed/completed DOC++ style comments in the header files.
289  *
290  * Revision 1.2 1999/09/10 12:17:56 joergr
291  * Changed parameter type of copy constructor and assignment operator to avoid
292  * compiler warnings reported by gcc/ecgs on Solaris (with additional flags).
293  *
294  * Revision 1.1 1999/09/10 08:50:23 joergr
295  * Added support for CIELAB display function. Restructured class hierarchy
296  * for display functions.
297  *
298  *
299  */


Generated on Thu Dec 20 2012 for OFFIS DCMTK Version 3.6.0 by Doxygen 1.8.2