OFFIS DCMTK  Version 3.6.0
dimo2img.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: DicomMonochrome2Image (Header)
19  *
20  * Last Update: $Author: joergr $
21  * Update Date: $Date: 2010-10-14 13:16:26 $
22  * CVS/RCS Revision: $Revision: 1.18 $
23  * Status: $State: Exp $
24  *
25  * CVS/RCS Log at end of file
26  *
27  */
28 
29 
30 #ifndef DIMO2IMG_H
31 #define DIMO2IMG_H
32 
33 #include "dcmtk/config/osconfig.h"
34 
35 #include "dcmtk/dcmimgle/dimoimg.h"
36 
37 
38 /*---------------------*
39  * class declaration *
40  *---------------------*/
41 
45  : public DiMonoImage
46 {
47 
48  public:
49 
55  DiMono2Image(const DiDocument *docu,
56  const EI_Status status);
57 
65  DiMono2Image(const DiDocument *docu,
66  const EI_Status status,
67  const double slope,
68  const double intercept);
69 
78  DiMono2Image(const DiDocument *docu,
79  const EI_Status status,
80  const DcmUnsignedShort &data,
81  const DcmUnsignedShort &descriptor,
82  const DcmLongString *explanation);
83 
91  DiMono2Image(const DiColorImage *image,
92  const double red,
93  const double green,
94  const double blue);
95 
104  DiMono2Image(const DiMonoImage *image,
105  DiMonoOutputPixel *pixel,
106  const unsigned long frame,
107  const int stored,
108  const int alloc);
109 
112  virtual ~DiMono2Image();
113 
117  virtual EP_Interpretation getInternalColorModel() const
118  {
119  return EPI_Monochrome2;
120  }
121 
131  virtual const void *getOutputData(const unsigned long frame,
132  const int bits,
133  const int planar = 0);
134 
146  virtual int getOutputData(void *buffer,
147  const unsigned long size,
148  const unsigned long frame,
149  const int bits,
150  const int planar = 0);
151 
159  DiImage *createImage(const unsigned long fstart,
160  const unsigned long fcount) const;
161 
182  DiImage *createScale(const signed long left_pos,
183  const signed long top_pos,
184  const unsigned long clip_width,
185  const unsigned long clip_height,
186  const unsigned long scale_width,
187  const unsigned long scale_height,
188  const int interpolate,
189  const int aspect,
190  const Uint16 pvalue) const;
191 
199  DiImage *createFlip(const int horz,
200  const int vert) const;
201 
208  DiImage *createRotate(const int degree) const;
209 
219  DiImage *createMono(const double dummy1,
220  const double dummy2,
221  const double dummy3) const;
222 
223 
224  protected:
225 
232  DiMono2Image(const DiDocument *docu,
233  const EI_Status status,
234  const char dummy);
235 
242  DiMono2Image(const DiMonoImage *image,
243  const unsigned long fstart,
244  const unsigned long fcount);
245 
265  DiMono2Image(const DiMonoImage *image,
266  const signed long left_pos,
267  const signed long top_pos,
268  const Uint16 src_cols,
269  const Uint16 src_rows,
270  const Uint16 dest_cols,
271  const Uint16 dest_rows,
272  const int interpolate = 0,
273  const int aspect = 0,
274  const Uint16 pvalue = 0);
275 
282  DiMono2Image(const DiMonoImage *image,
283  const int horz,
284  const int vert);
285 
291  DiMono2Image(const DiMonoImage *image,
292  const int degree);
293 };
294 
295 
296 #endif
297 
298 
299 /*
300  *
301  * CVS/RCS Log:
302  * $Log: dimo2img.h,v $
303  * Revision 1.18 2010-10-14 13:16:26 joergr
304  * Updated copyright header. Added reference to COPYRIGHT file.
305  *
306  * Revision 1.17 2010-03-01 09:08:47 uli
307  * Removed some unnecessary include directives in the headers.
308  *
309  * Revision 1.16 2008-05-20 10:03:53 joergr
310  * Added new bilinear and bicubic scaling algorithms for image magnification.
311  *
312  * Revision 1.15 2005/12/08 16:47:47 meichel
313  * Changed include path schema for all DCMTK header files
314  *
315  * Revision 1.14 2004/02/06 11:07:50 joergr
316  * Distinguish more clearly between const and non-const access to pixel data.
317  *
318  * Revision 1.13 2003/12/08 18:25:12 joergr
319  * Removed leading underscore characters from preprocessor symbols (reserved
320  * symbols). Updated CVS header.
321  *
322  * Revision 1.12 2003/06/12 15:08:34 joergr
323  * Fixed inconsistent API documentation reported by Doxygen.
324  *
325  * Revision 1.11 2002/12/09 13:32:52 joergr
326  * Renamed parameter/local variable to avoid name clashes with global
327  * declaration left and/or right (used for as iostream manipulators).
328  *
329  * Revision 1.10 2001/11/27 18:18:23 joergr
330  * Added support for plugable output formats in class DicomImage. First
331  * implementation is JPEG.
332  *
333  * Revision 1.9 2001/06/01 15:49:44 meichel
334  * Updated copyright header
335  *
336  * Revision 1.8 2000/03/08 16:24:18 meichel
337  * Updated copyright header.
338  *
339  * Revision 1.7 1999/10/06 13:29:55 joergr
340  * Corrected creation of PrintBitmap pixel data: VOI windows should be applied
341  * before clipping to avoid that the region outside the image (border) is also
342  * windowed (this requires a new method in dcmimgle to create a DicomImage
343  * with the grayscale transformations already applied).
344  *
345  * Revision 1.6 1999/09/17 12:22:57 joergr
346  * Added/changed/completed DOC++ style comments in the header files.
347  *
348  * Revision 1.5 1999/08/25 16:41:52 joergr
349  * Added new feature: Allow clipping region to be outside the image
350  * (overlapping).
351  *
352  * Revision 1.4 1999/03/24 17:20:06 joergr
353  * Added/Modified comments and formatting.
354  *
355  * Revision 1.3 1999/01/20 15:03:20 joergr
356  * Added new output method to fill external memory buffer with rendered pixel
357  * data.
358  *
359  * Revision 1.2 1998/12/16 16:32:02 joergr
360  * Added explanation string to LUT class (retrieved from dataset).
361  *
362  * Revision 1.1 1998/11/27 15:12:18 joergr
363  * Added copyright message.
364  * Added methods and constructors for flipping and rotating, changed for
365  * scaling and clipping.
366  *
367  * Revision 1.2 1998/05/11 14:53:19 joergr
368  * Added CVS/RCS header to each file.
369  *
370  *
371  */


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