DcmQuantColorTable Class Reference

this class implements a color table that can either be a look-up table or an image color histogram. More...

List of all members.

Public Member Functions

 DcmQuantColorTable ()
 constructor
 ~DcmQuantColorTable ()
 destructor
void clear ()
 resets the object to default-constructed state
unsigned long getColors () const
 returns the number of colors in the color table
void setDescriptionString (OFString &str) const
 creates a description string suitable for use as Derivation Description.
OFCondition computeHistogram (DicomImage &image, unsigned long maxcolors)
 creates a color table containing a histogram of the given image.
unsigned long getMaxVal () const
 after a call to computeHistogram(), this method returns the maximum pixel value to which all color samples were down-sampled during computation of the histogram.
const DcmQuantPixelgetPixel (unsigned long idx) const
 returns the color at index idx.
DcmQuantComponent getRed (unsigned long idx) const
 returns the red color component at index idx
DcmQuantComponent getGreen (unsigned long idx) const
 returns the green color component at index idx
DcmQuantComponent getBlue (unsigned long idx) const
 returns the blue color component at index idx
OFCondition medianCut (DcmQuantColorTable &histogram, unsigned long sum, unsigned long theMaxval, unsigned long numberOfColors, DcmLargestDimensionType largeType, DcmRepresentativeColorType repType)
 computes a color LUT for the given image histogram.
int computeIndex (const DcmQuantPixel &px) const
 determines for a given color the closest match in the color LUT.
OFCondition write (DcmItem &target, OFBool writeAsOW, OFBool write16BitEntries)
 writes the current color table into a DICOM object, encoded as Red/Green/Blue Palette Color Lookup Table and Data.

Private Member Functions

void computeClusters ()
 after a call to medianCut(), this method computes for each entry in the color map the minimum of the euclidean distances to any other of the entries.
 DcmQuantColorTable (const DcmQuantColorTable &src)
 private undefined copy constructor
DcmQuantColorTableoperator= (const DcmQuantColorTable &src)
 private undefined copy assignment operator

Private Attributes

DcmQuantHistogramItemPointerarray
 color table data
unsigned long numColors
 number of entries in color table
unsigned long maxval
 maximum pixel value to which all color samples were down-sampled during computation of the histogram.


Detailed Description

this class implements a color table that can either be a look-up table or an image color histogram.

Definition at line 52 of file diqtctab.h.


Member Function Documentation

void DcmQuantColorTable::computeClusters  )  [private]
 

after a call to medianCut(), this method computes for each entry in the color map the minimum of the euclidean distances to any other of the entries.

Any color which has an euclidean distance of less than half of this distance is necessarily mapped to this entry. This data is used by computeIndex()

OFCondition DcmQuantColorTable::computeHistogram DicomImage image,
unsigned long  maxcolors
 

creates a color table containing a histogram of the given image.

Pixel sample values are downsampled if necessary to make sure the histogram fits into the given size limit.

Parameters:
image color image for which a histogram is computed
maxcolors maximum number of colors allowed in histogram. If necessary, pixel sample values are down-sampled to enforce this maximum.
Returns:
EC_Normal if successful, an error code otherwise.

int DcmQuantColorTable::computeIndex const DcmQuantPixel px  )  const [inline]
 

determines for a given color the closest match in the color LUT.

Parameters:
px color to look up in LUT
Returns:
index of closest match in LUT, -1 if look-up table empty

Definition at line 174 of file diqtctab.h.

References array, getBlue(), DcmQuantPixel::getBlue(), getGreen(), DcmQuantPixel::getGreen(), getRed(), DcmQuantPixel::getRed(), and numColors.

Referenced by DcmQuantColorMapping< T1, T2 >::create().

DcmQuantComponent DcmQuantColorTable::getBlue unsigned long  idx  )  const [inline]
 

returns the blue color component at index idx

Parameters:
idx index, must be < getColors()
Returns:
blue color component

Definition at line 139 of file diqtctab.h.

References array, DcmQuantPixel::getBlue(), and numColors.

Referenced by computeIndex().

unsigned long DcmQuantColorTable::getColors  )  const [inline]
 

returns the number of colors in the color table

Returns:
number of colors in color table

Definition at line 68 of file diqtctab.h.

References numColors.

DcmQuantComponent DcmQuantColorTable::getGreen unsigned long  idx  )  const [inline]
 

returns the green color component at index idx

Parameters:
idx index, must be < getColors()
Returns:
green color component

Definition at line 127 of file diqtctab.h.

References array, DcmQuantPixel::getGreen(), and numColors.

Referenced by computeIndex().

const DcmQuantPixel& DcmQuantColorTable::getPixel unsigned long  idx  )  const [inline]
 

returns the color at index idx.

Parameters:
idx index, must be < getColors()
Returns:
const reference to color

Definition at line 103 of file diqtctab.h.

References array, and numColors.

Referenced by DcmQuantColorMapping< T1, T2 >::create().

DcmQuantComponent DcmQuantColorTable::getRed unsigned long  idx  )  const [inline]
 

returns the red color component at index idx

Parameters:
idx index, must be < getColors()
Returns:
red color component

Definition at line 115 of file diqtctab.h.

References array, DcmQuantPixel::getRed(), and numColors.

Referenced by computeIndex().

OFCondition DcmQuantColorTable::medianCut DcmQuantColorTable histogram,
unsigned long  sum,
unsigned long  theMaxval,
unsigned long  numberOfColors,
DcmLargestDimensionType  largeType,
DcmRepresentativeColorType  repType
 

computes a color LUT for the given image histogram.

This median-cut colormap generator is based on Paul Heckbert's paper "Color Image Quantization for Frame Buffer Display", SIGGRAPH '82 Proceedings, page 297.

Parameters:
histogram image color histogram
sum number of pixels in image (colums * rows * frames)
theMaxval maximum value to which pixels were downsampled for histogram computation
numberOfColors desired number of colors in color LUT
largeType algorithm used for determining the largest dimension in the Median Cut algorithm
repType algorithm for choosing a representative color for each box in the Median Cut algorithm
Returns:
EC_Normal if successful, an error code otherwise.

void DcmQuantColorTable::setDescriptionString OFString str  )  const
 

creates a description string suitable for use as Derivation Description.

Parameters:
str description string returned in this parameter

OFCondition DcmQuantColorTable::write DcmItem target,
OFBool  writeAsOW,
OFBool  write16BitEntries
 

writes the current color table into a DICOM object, encoded as Red/Green/Blue Palette Color Lookup Table and Data.

Parameters:
target DICOM dataset to write to
writeAsOW if true, LUT data is encoded as OW, otherwise LUT data is encoded as US. A LUT with 64k entries is always encoded as OW since a US data element with 64k entries cannot be written in explicit VR.
write16BitEntries if true, LUT data is encoded with 16 bits per entry
Returns:
EC_Normal if successful, an error code otherwise.


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


Generated on 20 Dec 2005 for OFFIS DCMTK Version 3.5.4 by Doxygen 1.4.5