DiLookupTable Class Reference

Class to handle color palette look-up tables. More...

Inheritance diagram for DiLookupTable:

DiBaseLUT DiObjectCounter List of all members.

Public Member Functions

 DiLookupTable (const DiDocument *docu, const DcmTagKey &descriptor, const DcmTagKey &data, const DcmTagKey &explanation, const EL_BitsPerTableEntry descripMode=ELM_UseValue, EI_Status *status=NULL)
 constructor
 DiLookupTable (const DiDocument *docu, const DcmTagKey &sequence, const DcmTagKey &descriptor, const DcmTagKey &data, const DcmTagKey &explanation, const EL_BitsPerTableEntry descripMode=ELM_UseValue, const unsigned long pos=0, unsigned long *card=NULL)
 constructor
 DiLookupTable (const DcmUnsignedShort &data, const DcmUnsignedShort &descriptor, const DcmLongString *explanation=NULL, const EL_BitsPerTableEntry descripMode=ELM_UseValue, const signed long first=-1, EI_Status *status=NULL)
 constructor
 DiLookupTable (Uint16 *buffer, const Uint32 count, const Uint16 bits)
 constructor
virtual ~DiLookupTable ()
 destructor
int invertTable (const int flag=0x1)
 invert all LUT values.
int mirrorTable (const int flag=0x1)
 mirror the order of all LUT entries.
DiLookupTablecreateInverseLUT () const
 create an inverse copy of the current LUT.
int compareLUT (const DcmUnsignedShort &data, const DcmUnsignedShort &descriptor)
 compares current LUT with specified LUT
virtual OFBool operator== (const DiBaseLUT &lut)
 compares current LUT with specified LUT
virtual OFBool operator== (const DiLookupTable &lut)
 compares current LUT with specified LUT

Protected Member Functions

void Init (const DiDocument *docu, DcmObject *obj, const DcmTagKey &descriptor, const DcmTagKey &data, const DcmTagKey &explanation, const EL_BitsPerTableEntry descripMode=ELM_UseValue, EI_Status *status=NULL)
 initialize lookup table
void checkTable (unsigned long count, Uint16 bits, const EL_BitsPerTableEntry descripMode=ELM_UseValue, EI_Status *status=NULL)
 check (and possibly correct) lookup table for consistency
void checkBits (const Uint16 bits, const Uint16 rightBits, const Uint16 wrongBits=0, const EL_BitsPerTableEntry descripMode=ELM_UseValue)
 check (and possibly correct) value for bits per LUT entry.

Private Member Functions

 DiLookupTable (const DiLookupTable &)
DiLookupTableoperator= (const DiLookupTable &)

Private Attributes

int OriginalBitsAllocated
 number of bits originally allocated for a LUT entry
void * OriginalData
 pointer to original data buffer (where the LUT data is created from)

Detailed Description

Class to handle color palette look-up tables.

Definition at line 56 of file diluptab.h.


Constructor & Destructor Documentation

DiLookupTable::DiLookupTable ( const DiDocument docu,
const DcmTagKey descriptor,
const DcmTagKey data,
const DcmTagKey explanation,
const EL_BitsPerTableEntry  descripMode = ELM_UseValue,
EI_Status *  status = NULL 
)

constructor

Parameters:
docu pointer to dataset (encapsulated)
descriptor tag key containing the LUT descriptor
data tag key containing the LUT data
explanation tag key containing the LUT explanation
descripMode mode specifying the use of the bits per table entry value
status pointer to image status variable (optional)

DiLookupTable::DiLookupTable ( const DiDocument docu,
const DcmTagKey sequence,
const DcmTagKey descriptor,
const DcmTagKey data,
const DcmTagKey explanation,
const EL_BitsPerTableEntry  descripMode = ELM_UseValue,
const unsigned long  pos = 0,
unsigned long *  card = NULL 
)

constructor

Parameters:
docu pointer to dataset (encapsulated)
sequence tag key containing the LUT sequence
descriptor tag key containing the LUT descriptor
data tag key containing the LUT data
explanation tag key containing the LUT explanation
descripMode mode specifying the use of the bits per table entry value
pos position in the LUT sequence which should be used (optional)
card pointer to storage area where the number of sequence entries should be stored (optional)

DiLookupTable::DiLookupTable ( const DcmUnsignedShort data,
const DcmUnsignedShort descriptor,
const DcmLongString explanation = NULL,
const EL_BitsPerTableEntry  descripMode = ELM_UseValue,
const signed long  first = -1,
EI_Status *  status = NULL 
)

constructor

Parameters:
data element containing the LUT data
descriptor element containing the LUT descriptor
explanation element containing the LUT explanation (optional)
descripMode mode specifying the use of the bits per table entry value
first expected value for "first input value mapped" (optional)
status pointer to image status variable (optional)

DiLookupTable::DiLookupTable ( Uint16 *  buffer,
const Uint32  count,
const Uint16  bits 
)

constructor

Parameters:
buffer pointer to array with LUT entries
count number of LUT entries
bits number of bits per entry


Member Function Documentation

int DiLookupTable::invertTable ( const int  flag = 0x1  ) 

invert all LUT values.

(new_value = max_value - old_value, e.g. used for presentation LUTs)

Parameters:
flag if bit 0 is set (0x1, default) the internal copy of the LUT data is modified or a copy of the original data is created (if not already existing), if bit 1 is set (0x2) the original LUT data is modified, a combination of both modes is also supported.
Returns:
status true if successful (0x1 if internal data modified, 0x2 if original data, 0x3 if both), false otherwise

int DiLookupTable::mirrorTable ( const int  flag = 0x1  ) 

mirror the order of all LUT entries.

i.e. the last one becomes the first etc. (value[i] = value[last - i], e.g. used for presentation LUTs)

Parameters:
flag if bit 0 is set (0x1, default) the internal copy of the LUT data is modified or a copy of the original data is created (if not already existing), if bit 1 is set (0x2) the original LUT data is modified, a combination of both modes is also supported.
Returns:
status true if successful (0x1 if internal data modified, 0x2 if original data, 0x3 if both), false otherwise

DiLookupTable* DiLookupTable::createInverseLUT (  )  const

create an inverse copy of the current LUT.

(input values become output values and vice versa) This function is used for DICOM print (mainly 8<->12 bit).

Returns:
pointer to inverse LUT

int DiLookupTable::compareLUT ( const DcmUnsignedShort data,
const DcmUnsignedShort descriptor 
)

compares current LUT with specified LUT

Parameters:
data element containing the LUT data
descriptor element containing the LUT descriptor
Returns:
true if LUTs are not equal (1 = invalid LUT / memory error, 2 = descriptor differs, 3 = data differs) false (0) otherwise

virtual OFBool DiLookupTable::operator== ( const DiBaseLUT lut  )  [virtual]

compares current LUT with specified LUT

Parameters:
lut LUT to be compared with the current one
Returns:
OFTrue if LUTs are equal, OFFalse otherwise

Reimplemented from DiBaseLUT.

virtual OFBool DiLookupTable::operator== ( const DiLookupTable lut  )  [virtual]

compares current LUT with specified LUT

Parameters:
lut LUT to be compared with the current one
Returns:
OFTrue if LUTs are equal, OFFalse otherwise

void DiLookupTable::Init ( const DiDocument docu,
DcmObject obj,
const DcmTagKey descriptor,
const DcmTagKey data,
const DcmTagKey explanation,
const EL_BitsPerTableEntry  descripMode = ELM_UseValue,
EI_Status *  status = NULL 
) [protected]

initialize lookup table

Parameters:
docu pointer to dataset (encapsulated)
obj pointer to item in dataset where to start (maybe NULL)
descriptor tag key containing the LUT descriptor
data tag key containing the LUT data
explanation tag key containing the LUT explanation
descripMode mode specifying the use of the bits per table entry value
status pointer to image status variable (optional)

void DiLookupTable::checkTable ( unsigned long  count,
Uint16  bits,
const EL_BitsPerTableEntry  descripMode = ELM_UseValue,
EI_Status *  status = NULL 
) [protected]

check (and possibly correct) lookup table for consistency

Parameters:
count number of LUT entries
bits bits per LUT entry
descripMode mode specifying the use of the bits per table entry value
status pointer to image status variable (optional)

void DiLookupTable::checkBits ( const Uint16  bits,
const Uint16  rightBits,
const Uint16  wrongBits = 0,
const EL_BitsPerTableEntry  descripMode = ELM_UseValue 
) [protected]

check (and possibly correct) value for bits per LUT entry.

Be very lenient with the value stored in the LUT descriptor and therefore perform some addition (heuristical tests) to assume the most probable value.

Parameters:
bits actual value for bits per entry
rightBits right value (8 or 16)
wrongBits wrong value (8 or 16)
descripMode mode specifying the use of the bits per table entry value


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