OFFIS DCMTK  Version 3.6.0
dimomod.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: DicomMonochromeModality (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 DIMOMOD_H
31 #define DIMOMOD_H
32 
33 #include "dcmtk/config/osconfig.h"
34 #include "dcmtk/ofstd/ofcast.h"
35 
36 #include "dcmtk/dcmimgle/diluptab.h"
37 #include "dcmtk/dcmimgle/diobjcou.h"
38 
39 
40 /*------------------------*
41  * forward declarations *
42  *------------------------*/
43 
44 class DiDocument;
45 class DiInputPixel;
46 
47 
48 /*---------------------*
49  * class declaration *
50  *---------------------*/
51 
55  : public DiObjectCounter
56 {
57 
58  public:
59 
65  DiMonoModality(const DiDocument *docu,
66  DiInputPixel *pixel);
67 
75  DiMonoModality(const DiDocument *docu,
76  DiInputPixel *pixel,
77  const double slope,
78  const double intercept);
79 
88  DiMonoModality(const DiDocument *docu,
89  DiInputPixel *pixel,
90  const DcmUnsignedShort &data,
91  const DcmUnsignedShort &descriptor,
92  const DcmLongString *explanation);
93 
98  DiMonoModality(const int bits);
99 
102  virtual ~DiMonoModality();
103 
108  inline EP_Representation getRepresentation() const
109  {
110  return Representation;
111  }
112 
117  inline double getMinValue() const
118  {
119  return MinValue;
120  }
121 
126  inline double getMaxValue() const
127  {
128  return MaxValue;
129  }
130 
135  inline unsigned int getBits() const
136  {
137  return Bits;
138  }
139 
145  inline unsigned int getUsedBits() const
146  {
147  return UsedBits;
148  }
149 
154  inline double getAbsMinimum() const
155  {
156  return AbsMinimum;
157  }
158 
163  inline double getAbsMaximum() const
164  {
165  return AbsMaximum;
166  }
167 
172  inline double getRescaleIntercept() const
173  {
174  return RescaleIntercept;
175  }
176 
181  inline double getRescaleSlope() const
182  {
183  return RescaleSlope;
184  }
185 
190  inline const DiLookupTable *getTableData() const
191  {
192  return TableData;
193  }
194 
199  inline const char *getExplanation() const
200  {
201  return (TableData != NULL) ? TableData->getExplanation() : OFstatic_cast(const char *, NULL);
202  }
203 
208  inline int hasLookupTable() const
209  {
210  return LookupTable;
211  }
212 
217  inline int hasRescaling() const
218  {
219  return Rescaling;
220  }
221 
222 
223  protected:
224 
230  int Init(const DiDocument *docu,
231  DiInputPixel *pixel);
232 
235  void checkTable();
236 
241  void checkRescaling(const DiInputPixel *pixel);
242 
247  void determineRepresentation(const DiDocument *docu);
248 
249 
250  private:
251 
253  EP_Representation Representation;
254 
256  double MinValue;
258  double MaxValue;
259 
261  unsigned int Bits;
263  unsigned int UsedBits;
264 
266  double AbsMinimum;
268  double AbsMaximum;
269 
273  double RescaleSlope;
274 
279 
282 
283  // --- declarations to avoid compiler warnings
284 
286  DiMonoModality &operator=(const DiMonoModality &);
287 };
288 
289 
290 #endif
291 
292 
293 /*
294  *
295  * CVS/RCS Log:
296  * $Log: dimomod.h,v $
297  * Revision 1.17 2010-10-14 13:16:26 joergr
298  * Updated copyright header. Added reference to COPYRIGHT file.
299  *
300  * Revision 1.16 2010-03-01 09:08:47 uli
301  * Removed some unnecessary include directives in the headers.
302  *
303  * Revision 1.15 2009-04-21 08:21:06 joergr
304  * Added method getUsedBits() which allows for retrieving the number of bits
305  * actually used to store the output data.
306  *
307  * Revision 1.14 2005/12/08 16:47:52 meichel
308  * Changed include path schema for all DCMTK header files
309  *
310  * Revision 1.13 2003/12/08 18:28:56 joergr
311  * Adapted type casts to new-style typecast operators defined in ofcast.h.
312  * Removed leading underscore characters from preprocessor symbols (reserved
313  * symbols). Updated copyright header.
314  *
315  * Revision 1.12 2001/06/01 15:49:45 meichel
316  * Updated copyright header
317  *
318  * Revision 1.11 2000/03/08 16:24:19 meichel
319  * Updated copyright header.
320  *
321  * Revision 1.10 1999/10/06 13:40:25 joergr
322  * Added Doc++ header comments.
323  *
324  * Revision 1.9 1999/09/17 12:26:25 joergr
325  * iAdded/changed/completed DOC++ style comments in the header files.
326  *
327  * Revision 1.8 1999/05/31 12:35:15 joergr
328  * Corrected bug concerning the conversion of color images to grayscale.
329  *
330  * Revision 1.7 1999/04/28 17:03:47 joergr
331  * Added type casts to NULL pointers returned as 'const char *' to avoid
332  * compiler warnings reported by gcc 2.7.2.1 (Linux).
333  *
334  * Revision 1.6 1999/03/24 17:20:12 joergr
335  * Added/Modified comments and formatting.
336  *
337  * Revision 1.5 1999/02/03 17:30:00 joergr
338  * Added member variable and related methods to store number of bits used for
339  * pixel data.
340  *
341  * Revision 1.4 1998/12/22 14:31:01 joergr
342  * Changed calculation of AbsMinimum/Maximum.
343  * Removed member variable and method for isPotentiallySigned.
344  *
345  * Revision 1.3 1998/12/16 16:34:37 joergr
346  * Added explanation string to LUT class (retrieved from dataset).
347  *
348  * Revision 1.2 1998/12/14 17:23:52 joergr
349  * Added support for correct scaling of input/output values for grayscale
350  * transformations.
351  *
352  * Revision 1.1 1998/11/27 15:25:15 joergr
353  * Added copyright message.
354  * Added constructors to use external modality transformations.
355  *
356  * Revision 1.5 1998/07/01 08:39:23 joergr
357  * Minor changes to avoid compiler warnings (gcc 2.8.1 with additional
358  * options), e.g. add copy constructors.
359  *
360  * Revision 1.4 1998/05/11 14:53:21 joergr
361  * Added CVS/RCS header to each file.
362  *
363  *
364  */


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