DiMonoOutputPixelTemplate< T1, T2, T3 > Class Template Reference

Template class to create monochrome output data. More...

Inheritance diagram for DiMonoOutputPixelTemplate< T1, T2, T3 >:

DiMonoOutputPixel DiPixelRepresentationTemplate< T3 > List of all members.

Public Member Functions

 DiMonoOutputPixelTemplate (void *buffer, const DiMonoPixel *pixel, DiOverlay *overlays[2], const DiLookupTable *vlut, const DiLookupTable *plut, DiDisplayFunction *disp, const EF_VoiLutFunction vfunc, const double center, const double width, const Uint32 low, const Uint32 high, const Uint16 columns, const Uint16 rows, const unsigned long frame, const unsigned long, const int pastel=0)
 constructor
virtual ~DiMonoOutputPixelTemplate ()
 destructor
EP_Representation getRepresentation () const
 get integer representation of output data
size_t getItemSize () const
 get size of one pixel / item in the pixel array
const void * getData () const
 get pointer to output pixel data
virtual void * getDataPtr ()
 get pointer to output pixel data
void removeDataReference ()
 remove reference to (internally handled) pixel data (abstract)
int writePPM (STD_NAMESPACE ostream &stream) const
 write pixel data of selected frame to PPM/ASCII file
int writePPM (FILE *stream) const
 write pixel data of selected frame to PPM/ASCII file

Protected Member Functions

void determineUsedValues ()
 examine which pixel values are actually used

Private Member Functions

void createDisplayLUT (const DiDisplayLUT *&dlut, DiDisplayFunction *disp, const int bits)
 create a display LUT with the specified number of input bits
int initOptimizationLUT (T3 *&lut, const unsigned long ocnt)
 initialize an optimization LUT if the optimization criteria is fulfilled
void voilut (const DiMonoPixel *inter, const Uint32 start, const DiLookupTable *vlut, const DiLookupTable *plut, DiDisplayFunction *disp, const T3 low, const T3 high)
 apply the currently active VOI LUT to the output data
void nowindow (const DiMonoPixel *inter, const Uint32 start, const DiLookupTable *plut, DiDisplayFunction *disp, const T3 low, const T3 high)
 perform linear scaling to the output data (no windowing)
void sigmoid (const DiMonoPixel *inter, const Uint32 start, const DiLookupTable *plut, DiDisplayFunction *disp, const double center, const double width, const T3 low, const T3 high)
 apply the currently active sigmoid VOI window to the output data
void window (const DiMonoPixel *inter, const Uint32 start, const DiLookupTable *plut, DiDisplayFunction *disp, const double center, const double width, const T3 low, const T3 high)
 apply the currently active linear VOI window to the output data
void overlay (DiOverlay *overlays[2], DiDisplayFunction *disp, const Uint16 columns, const Uint16 rows, const unsigned long frame)
 apply the currently active overlay planes to the output data
 DiMonoOutputPixelTemplate (const DiMonoOutputPixelTemplate< T1, T2, T3 > &)
DiMonoOutputPixelTemplate<
T1, T2, T3 > & 
operator= (const DiMonoOutputPixelTemplate< T1, T2, T3 > &)

Private Attributes

T3 * Data
 pointer to the storage area where the output data should be stored
int DeleteData
 flag indicating whether the output data buffer should be deleted in the destructor
DiMonoOutputPixelColorData

Detailed Description

template<class T1, class T2, class T3>
class DiMonoOutputPixelTemplate< T1, T2, T3 >

Template class to create monochrome output data.

Definition at line 61 of file dimoopxt.h.


Constructor & Destructor Documentation

template<class T1, class T2, class T3>
DiMonoOutputPixelTemplate< T1, T2, T3 >::DiMonoOutputPixelTemplate ( void *  buffer,
const DiMonoPixel pixel,
DiOverlay overlays[2],
const DiLookupTable vlut,
const DiLookupTable plut,
DiDisplayFunction disp,
const EF_VoiLutFunction  vfunc,
const double  center,
const double  width,
const Uint32  low,
const Uint32  high,
const Uint16  columns,
const Uint16  rows,
const unsigned long  frame,
const unsigned  long,
const int  pastel = 0 
) [inline]

constructor

Parameters:
buffer storage area for the output pixel data (optional, maybe NULL)
pixel pointer to intermediate pixel representation
overlays array of overlay management objects
vlut VOI LUT (optional, maybe NULL)
plut presentation LUT (optional, maybe NULL)
disp display function (optional, maybe NULL)
vfunc VOI LUT function (optional)
center window center (optional, invalid if 'width' < 1)
width window width (optional, invalid if < 1)
low lowest pixel value for the output data (e.g. 0)
high highest pixel value for the output data (e.g. 255)
columns image's width (in pixels)
rows image's height
frame frame to be rendered (#)param frames total number of frames present in intermediate representation
pastel flag indicating whether to use not only 'real' grayscale values (optional, experimental)

Definition at line 87 of file dimoopxt.h.

References DiMonoOutputPixel::Count, DiMonoOutputPixelTemplate< T1, T2, T3 >::Data, DiMonoOutputPixel::FrameSize, DiBaseLUT::isValid(), DiMonoOutputPixelTemplate< T1, T2, T3 >::nowindow(), DiMonoOutputPixelTemplate< T1, T2, T3 >::overlay(), DiMonoOutputPixelTemplate< T1, T2, T3 >::sigmoid(), DiMonoOutputPixelTemplate< T1, T2, T3 >::voilut(), and DiMonoOutputPixelTemplate< T1, T2, T3 >::window().


Member Function Documentation

template<class T1, class T2, class T3>
EP_Representation DiMonoOutputPixelTemplate< T1, T2, T3 >::getRepresentation (  )  const [inline, virtual]

get integer representation of output data

Returns:
integer representation

Implements DiMonoOutputPixel.

Definition at line 156 of file dimoopxt.h.

References DiPixelRepresentationTemplate< T >::getRepresentation().

template<class T1, class T2, class T3>
size_t DiMonoOutputPixelTemplate< T1, T2, T3 >::getItemSize (  )  const [inline, virtual]

get size of one pixel / item in the pixel array

Returns:
item size

Implements DiMonoOutputPixel.

Definition at line 165 of file dimoopxt.h.

References DiMonoOutputPixelTemplate< T1, T2, T3 >::ColorData, and DiMonoOutputPixel::getItemSize().

template<class T1, class T2, class T3>
const void* DiMonoOutputPixelTemplate< T1, T2, T3 >::getData (  )  const [inline, virtual]

get pointer to output pixel data

Returns:
pointer to pixel data

Implements DiMonoOutputPixel.

Definition at line 174 of file dimoopxt.h.

References DiMonoOutputPixelTemplate< T1, T2, T3 >::ColorData, DiMonoOutputPixelTemplate< T1, T2, T3 >::Data, and DiMonoOutputPixel::getData().

template<class T1, class T2, class T3>
virtual void* DiMonoOutputPixelTemplate< T1, T2, T3 >::getDataPtr (  )  [inline, virtual]

get pointer to output pixel data

Returns:
pointer to pixel data

Implements DiMonoOutputPixel.

Definition at line 183 of file dimoopxt.h.

References DiMonoOutputPixelTemplate< T1, T2, T3 >::ColorData, DiMonoOutputPixelTemplate< T1, T2, T3 >::Data, and DiMonoOutputPixel::getDataPtr().

template<class T1, class T2, class T3>
int DiMonoOutputPixelTemplate< T1, T2, T3 >::writePPM ( STD_NAMESPACE ostream &  stream  )  const [inline, virtual]

write pixel data of selected frame to PPM/ASCII file

Parameters:
stream open C++ output stream
Returns:
status, true if successful, false otherwise

Implements DiMonoOutputPixel.

Definition at line 202 of file dimoopxt.h.

References DiMonoOutputPixelTemplate< T1, T2, T3 >::ColorData, DiMonoOutputPixelTemplate< T1, T2, T3 >::Data, DiMonoOutputPixel::FrameSize, and DiMonoOutputPixel::writePPM().

template<class T1, class T2, class T3>
int DiMonoOutputPixelTemplate< T1, T2, T3 >::writePPM ( FILE *  stream  )  const [inline, virtual]

write pixel data of selected frame to PPM/ASCII file

Parameters:
stream open C file stream
Returns:
status, true if successful, false otherwise

Implements DiMonoOutputPixel.

Definition at line 222 of file dimoopxt.h.

References DiMonoOutputPixelTemplate< T1, T2, T3 >::ColorData, DiMonoOutputPixelTemplate< T1, T2, T3 >::Data, DiMonoOutputPixel::FrameSize, and DiMonoOutputPixel::writePPM().

template<class T1, class T2, class T3>
void DiMonoOutputPixelTemplate< T1, T2, T3 >::createDisplayLUT ( const DiDisplayLUT *&  dlut,
DiDisplayFunction disp,
const int  bits 
) [inline, private]

create a display LUT with the specified number of input bits

Parameters:
dlut reference to storage area where the display LUT should be stored
disp pointer to object describing the current display function
bits number of bits defining the input width of the display LUT

Definition at line 267 of file dimoopxt.h.

References DiDisplayFunction::getLookupTable(), DiBaseLUT::isValid(), and DiDisplayFunction::isValid().

Referenced by DiMonoOutputPixelTemplate< T1, T2, T3 >::nowindow(), DiMonoOutputPixelTemplate< T1, T2, T3 >::sigmoid(), DiMonoOutputPixelTemplate< T1, T2, T3 >::voilut(), and DiMonoOutputPixelTemplate< T1, T2, T3 >::window().

template<class T1, class T2, class T3>
int DiMonoOutputPixelTemplate< T1, T2, T3 >::initOptimizationLUT ( T3 *&  lut,
const unsigned long  ocnt 
) [inline, private]

initialize an optimization LUT if the optimization criteria is fulfilled

Parameters:
lut reference to storage area where the optimization LUT should be stored
ocnt number of entries for the optimization LUT

Definition at line 289 of file dimoopxt.h.

References DiMonoOutputPixel::Count.

Referenced by DiMonoOutputPixelTemplate< T1, T2, T3 >::nowindow(), DiMonoOutputPixelTemplate< T1, T2, T3 >::sigmoid(), DiMonoOutputPixelTemplate< T1, T2, T3 >::voilut(), and DiMonoOutputPixelTemplate< T1, T2, T3 >::window().

template<class T1, class T2, class T3>
void DiMonoOutputPixelTemplate< T1, T2, T3 >::voilut ( const DiMonoPixel inter,
const Uint32  start,
const DiLookupTable vlut,
const DiLookupTable plut,
DiDisplayFunction disp,
const T3  low,
const T3  high 
) [inline, private]

apply the currently active VOI LUT to the output data

Parameters:
inter pointer to intermediate pixel representation
start offset of the first pixel to be processed
vlut VOI LUT
plut presentation LUT (optional, maybe NULL)
disp display function (optional, maybe NULL)
low lowest pixel value for the output data (e.g. 0)
high highest pixel value for the output data (e.g. 255)

Definition at line 327 of file dimoopxt.h.

References DiMonoOutputPixel::Count, DiMonoOutputPixelTemplate< T1, T2, T3 >::createDisplayLUT(), DiMonoOutputPixelTemplate< T1, T2, T3 >::Data, DiMonoOutputPixel::FrameSize, DiMonoPixel::getAbsMaxRange(), DiBaseLUT::getAbsMaxRange(), DiMonoPixel::getAbsMinimum(), DiBaseLUT::getBits(), DiBaseLUT::getCount(), DiPixel::getData(), DiBaseLUT::getFirstEntry(), DiBaseLUT::getFirstValue(), DiBaseLUT::getLastEntry(), DiBaseLUT::getLastValue(), DiBaseLUT::getMaxValue(), DiBaseLUT::getMinValue(), DiBaseLUT::getValue(), DiMonoOutputPixelTemplate< T1, T2, T3 >::initOptimizationLUT(), DiBaseLUT::isValid(), OFBitmanipTemplate< T >::setMem(), and OFBitmanipTemplate< T >::zeroMem().

Referenced by DiMonoOutputPixelTemplate< T1, T2, T3 >::DiMonoOutputPixelTemplate().

template<class T1, class T2, class T3>
void DiMonoOutputPixelTemplate< T1, T2, T3 >::nowindow ( const DiMonoPixel inter,
const Uint32  start,
const DiLookupTable plut,
DiDisplayFunction disp,
const T3  low,
const T3  high 
) [inline, private]

perform linear scaling to the output data (no windowing)

Parameters:
inter pointer to intermediate pixel representation
start offset of the first pixel to be processed
plut presentation LUT (optional, maybe NULL)
disp display function (optional, maybe NULL)
low lowest pixel value for the output data (e.g. 0)
high highest pixel value for the output data (e.g. 255)

Definition at line 613 of file dimoopxt.h.

References DiMonoOutputPixel::Count, DiMonoOutputPixelTemplate< T1, T2, T3 >::createDisplayLUT(), DiMonoOutputPixelTemplate< T1, T2, T3 >::Data, DiMonoOutputPixel::FrameSize, DiMonoPixel::getAbsMaximum(), DiBaseLUT::getAbsMaxRange(), DiMonoPixel::getAbsMaxRange(), DiMonoPixel::getAbsMinimum(), DiMonoPixel::getBits(), DiBaseLUT::getBits(), DiBaseLUT::getCount(), DiPixel::getData(), DiBaseLUT::getValue(), DiMonoOutputPixelTemplate< T1, T2, T3 >::initOptimizationLUT(), and DiBaseLUT::isValid().

Referenced by DiMonoOutputPixelTemplate< T1, T2, T3 >::DiMonoOutputPixelTemplate().

template<class T1, class T2, class T3>
void DiMonoOutputPixelTemplate< T1, T2, T3 >::sigmoid ( const DiMonoPixel inter,
const Uint32  start,
const DiLookupTable plut,
DiDisplayFunction disp,
const double  center,
const double  width,
const T3  low,
const T3  high 
) [inline, private]

apply the currently active sigmoid VOI window to the output data

Parameters:
inter pointer to intermediate pixel representation
start offset of the first pixel to be processed
plut presentation LUT (optional, maybe NULL)
disp display function (optional, maybe NULL)
center window center
width window width (>= 1)
low lowest pixel value for the output data (e.g. 0)
high highest pixel value for the output data (e.g. 255)

Definition at line 773 of file dimoopxt.h.

References DiMonoOutputPixel::Count, DiMonoOutputPixelTemplate< T1, T2, T3 >::createDisplayLUT(), DiMonoOutputPixelTemplate< T1, T2, T3 >::Data, DiMonoOutputPixel::FrameSize, DiBaseLUT::getAbsMaxRange(), DiMonoPixel::getAbsMaxRange(), DiMonoPixel::getAbsMinimum(), DiBaseLUT::getBits(), DiBaseLUT::getCount(), DiPixel::getData(), DiBaseLUT::getValue(), DiMonoOutputPixelTemplate< T1, T2, T3 >::initOptimizationLUT(), and DiBaseLUT::isValid().

Referenced by DiMonoOutputPixelTemplate< T1, T2, T3 >::DiMonoOutputPixelTemplate().

template<class T1, class T2, class T3>
void DiMonoOutputPixelTemplate< T1, T2, T3 >::window ( const DiMonoPixel inter,
const Uint32  start,
const DiLookupTable plut,
DiDisplayFunction disp,
const double  center,
const double  width,
const T3  low,
const T3  high 
) [inline, private]

apply the currently active linear VOI window to the output data

Parameters:
inter pointer to intermediate pixel representation
start offset of the first pixel to be processed
plut presentation LUT (optional, maybe NULL)
disp display function (optional, maybe NULL)
center window center
width window width (>= 1)
low lowest pixel value for the output data (e.g. 0)
high highest pixel value for the output data (e.g. 255)

Definition at line 932 of file dimoopxt.h.

References DiMonoOutputPixel::Count, DiMonoOutputPixelTemplate< T1, T2, T3 >::createDisplayLUT(), DiMonoOutputPixelTemplate< T1, T2, T3 >::Data, DiMonoOutputPixel::FrameSize, DiBaseLUT::getAbsMaxRange(), DiMonoPixel::getAbsMaxRange(), DiMonoPixel::getAbsMinimum(), DiBaseLUT::getBits(), DiBaseLUT::getCount(), DiPixel::getData(), DiBaseLUT::getValue(), DiMonoOutputPixelTemplate< T1, T2, T3 >::initOptimizationLUT(), and DiBaseLUT::isValid().

Referenced by DiMonoOutputPixelTemplate< T1, T2, T3 >::DiMonoOutputPixelTemplate().

template<class T1, class T2, class T3>
void DiMonoOutputPixelTemplate< T1, T2, T3 >::overlay ( DiOverlay overlays[2],
DiDisplayFunction disp,
const Uint16  columns,
const Uint16  rows,
const unsigned long  frame 
) [inline, private]

apply the currently active overlay planes to the output data

Parameters:
overlays array of overlay management objects
disp display function (optional, maybe NULL)
columns image's width (in pixels)
rows image's height (in pixels)
frame number of frame to be rendered

Definition at line 1135 of file dimoopxt.h.

References DiMonoOutputPixelTemplate< T1, T2, T3 >::Data, DiOverlayPlane::getBottom(), DiOverlay::getCount(), DiMonoOutputPixel::getCount(), DiOverlayPlane::getForeground(), DiOverlayPlane::getLeft(), DiOverlay::getLeft(), DiDisplayFunction::getLookupTable(), DiOverlayPlane::getMode(), DiOverlayPlane::getNextBit(), DiOverlayPlane::getPValue(), DiOverlayPlane::getRight(), DiOverlayPlane::getThreshold(), DiOverlayPlane::getTop(), DiOverlay::getTop(), DiBaseLUT::getValue(), DiBaseLUT::isValid(), DiDisplayFunction::isValid(), DiOverlayPlane::isVisible(), DicomImageClass::maxval(), DiOverlayPlane::reset(), and DiOverlayPlane::setStart().

Referenced by DiMonoOutputPixelTemplate< T1, T2, T3 >::DiMonoOutputPixelTemplate().


The documentation for this class was generated from the following file:


Generated on 6 Jan 2011 for OFFIS DCMTK Version 3.6.0 by Doxygen 1.5.1