DCMTK: DcmQuantColorTable Class Reference

DCMTK Version 3.6.9 OFFIS DICOM Toolkit

Loading...
Searching...
No Matches
Public Member Functions | Private Member Functions | Private Attributes | List of all members
DcmQuantColorTable Class Reference

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

## 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 DcmQuantPixel & | getPixel (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
DcmQuantColorTable & | operator= (const DcmQuantColorTable &src)
| private undefined copy assignment operator

## Private Attributes
DcmQuantHistogramItemPointer * | array
| 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.

## Member Function Documentation

## ◆ computeClusters()

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()

## ◆ computeHistogram()

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.

## ◆ computeIndex()

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

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

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

## ◆ getBlue()

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

References array, and numColors.

Referenced by computeIndex().

## ◆ getColors()

unsigned long DcmQuantColorTable::getColors | ( |  | ) | const
| inline

returns the number of colors in the color table

Returns
  number of colors in color table

References numColors.

## ◆ getGreen()

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

References array, and numColors.

Referenced by computeIndex().

## ◆ getPixel()

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

References array, and numColors.

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

## ◆ getRed()

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

References array, and numColors.

Referenced by computeIndex().

## ◆ medianCut()

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 (columns * 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.

References DcmQuantColorTable().

## ◆ setDescriptionString()

void DcmQuantColorTable::setDescriptionString | ( | OFString & | str | ) | const

creates a description string suitable for use as Derivation Description.

Parameters

  str | description string returned in this parameter

## ◆ write()

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:

- dcmimage/include/dcmtk/dcmimage/diqtctab.h

Generated on Sat Mar 1 2025 for DCMTK Version 3.6.9 by Doxygen 1.13.2