Loading...
Searching...
No Matches
DiMonoOutputPixelTemplate< T1, T2, T3 > Class Template Reference

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

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

## 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
Public Member Functions inherited from DiMonoOutputPixel
| DiMonoOutputPixel (const DiMonoPixel *pixel, const unsigned long size, const unsigned long frame, const unsigned long max)
| constructor
virtual | ~DiMonoOutputPixel ()
| destructor
unsigned long | getCount () const
| get number of pixel per frame
int | isUnused (const unsigned long value)
| check whether specified pixel value is used in the image.
Public Member Functions inherited from DiPixelRepresentationTemplate< T3 >
| DiPixelRepresentationTemplate ()
| default constructor
virtual | ~DiPixelRepresentationTemplate ()
| destructor

## Protected Member Functions

void | determineUsedValues ()
| examine which pixel values are actually used
unsigned long | determineOptimizationCount (const double count)
| determine number of entries for the optimization LUT

## 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

## 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

## Additional Inherited Members

Protected Attributes inherited from DiMonoOutputPixel
unsigned long | Count
| number of pixels per frame (intermediate representation)
const unsigned long | FrameSize
| number of pixels per frame (memory buffer size)
Uint8 * | UsedValues
| array of used pixel values
const unsigned long | MaxValue
| maximum output value

## Detailed Description

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

Template class to create monochrome output data.

## Constructor & Destructor Documentation

## DiMonoOutputPixelTemplate()

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)

References DiMonoOutputPixel::DiMonoOutputPixel(), DiMonoOutputPixel::Count, Data, DeleteData, EFV_Sigmoid, DiMonoOutputPixel::FrameSize, DiBaseLUT::isValid(), nowindow(), overlay(), sigmoid(), voilut(), and window().

## Member Function Documentation

## createDisplayLUT()

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

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

Referenced by nowindow(), sigmoid(), voilut(), and window().

## determineOptimizationCount()

template<class T1, class T2, class T3>

unsigned long DiMonoOutputPixelTemplate< T1, T2, T3 >::determineOptimizationCount | ( | const double | count | ) |

inline protected

determine number of entries for the optimization LUT

Parameters

  count | number of entries intended to be used for the optimization LUT (floating point value)

Returns
  number of entries for the optimization LUT (unsigned integer value) or 0 if the size would exceed a certain limit (10,000,000 entries)

Referenced by nowindow(), sigmoid(), voilut(), and window().

## getData()

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.

References Data.

## getDataPtr()

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.

References Data.

## getItemSize()

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.

## getRepresentation()

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.

References DiPixelRepresentationTemplate< T >::getRepresentation().

## initOptimizationLUT()

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 (0 = never create one)

Returns
  status, true if successful, false otherwise

References DiMonoOutputPixel::Count.

Referenced by nowindow(), sigmoid(), voilut(), and window().

## nowindow()

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)

References DiMonoOutputPixel::Count, createDisplayLUT(), Data, determineOptimizationCount(), DiMonoOutputPixel::FrameSize, DiMonoPixel::getAbsMaximum(), DiBaseLUT::getAbsMaxRange(), DiMonoPixel::getAbsMaxRange(), DiMonoPixel::getAbsMinimum(), DiBaseLUT::getBits(), DiMonoPixel::getBits(), DiBaseLUT::getCount(), DiPixel::getData(), DiBaseLUT::getValue(), initOptimizationLUT(), DiBaseLUT::isValid(), and OFBitmanipTemplate< T >::zeroMem().

Referenced by DiMonoOutputPixelTemplate().

## overlay()

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

References Data, EMO_BitmapShutter, EMO_Complement, EMO_InvertBitmap, EMO_RegionOfInterest, EMO_Replace, EMO_ThresholdReplace, DiOverlayPlane::getBottom(), DiMonoOutputPixel::getCount(), DiOverlay::getCount(), DiOverlayPlane::getForeground(), DiOverlay::getLeft(), DiOverlayPlane::getLeft(), DiDisplayFunction::getLookupTable(), DiOverlayPlane::getMode(), DiOverlayPlane::getNextBit(), DiOverlayPlane::getPValue(), DiOverlayPlane::getRight(), DiOverlayPlane::getThreshold(), DiOverlay::getTop(), DiOverlayPlane::getTop(), DiBaseLUT::getValue(), DiOverlayPlane::isEmbedded(), DiBaseLUT::isValid(), DiDisplayFunction::isValid(), DiOverlayPlane::isVisible(), DicomImageClass::maxval(), DiOverlayPlane::reset(), and DiOverlayPlane::setStart().

Referenced by DiMonoOutputPixelTemplate().

## sigmoid()

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)

References DiMonoOutputPixel::Count, createDisplayLUT(), Data, determineOptimizationCount(), DiMonoOutputPixel::FrameSize, DiBaseLUT::getAbsMaxRange(), DiMonoPixel::getAbsMaxRange(), DiMonoPixel::getAbsMinimum(), DiBaseLUT::getBits(), DiBaseLUT::getCount(), DiPixel::getData(), DiBaseLUT::getValue(), initOptimizationLUT(), DiBaseLUT::isValid(), and OFBitmanipTemplate< T >::zeroMem().

Referenced by DiMonoOutputPixelTemplate().

## voilut()

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)

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

Referenced by DiMonoOutputPixelTemplate().

## window()

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)

References DiMonoOutputPixel::Count, createDisplayLUT(), Data, determineOptimizationCount(), DiMonoOutputPixel::FrameSize, DiBaseLUT::getAbsMaxRange(), DiMonoPixel::getAbsMaxRange(), DiMonoPixel::getAbsMinimum(), DiBaseLUT::getBits(), DiBaseLUT::getCount(), DiPixel::getData(), DiBaseLUT::getValue(), initOptimizationLUT(), DiBaseLUT::isValid(), and OFBitmanipTemplate< T >::zeroMem().

Referenced by DiMonoOutputPixelTemplate().

## writePPM() [1/2]

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.

References Data, and DiMonoOutputPixel::FrameSize.

## writePPM() [2/2]

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.

References Data, and DiMonoOutputPixel::FrameSize.

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

- dcmimgle/include/dcmtk/dcmimgle/dimoopxt.h

Generated on for DCMTK Version 3.7.0 by Doxygen 1.15.0