DicomObjects Reference
DicomObjects Reference / DicomImage Object / LookupTable Property
Minimum input value to use
Maximum input value to use
Whether to use the modality transform stage (rescale or LUT)
Whether to use the VOI transform stage (windowing or LUT)
Whether to use the presentation transform stage (inversion or LUT)
Whether you use any screen calibration as set by the viewer's CalibrationCurve Property
LookupTable Property
Description
Returns the lookup table used to convert pixel values to display or intermediate values
Property type
Read-only property
Syntax
Visual Basic
Public Property LookupTable( _
   ByVal Min As Long, _
   ByVal Max As Long, _
   ByVal Modality As Boolean, _
   ByVal VOI As Boolean, _
   ByVal presentation As Boolean, _
   ByVal Calibration As Boolean _
) As Variant
Parameters
Min
Minimum input value to use
Max
Maximum input value to use
Modality
Whether to use the modality transform stage (rescale or LUT)
VOI
Whether to use the VOI transform stage (windowing or LUT)
presentation
Whether to use the presentation transform stage (inversion or LUT)
Calibration
Whether you use any screen calibration as set by the viewer's CalibrationCurve Property
Remarks

This property enables developers to leverage the lookup tables used within DicomObjects when transforming pixel values into display values.

Use of each of the stages is conditional on that stage being enabled, and it is then used exactly as it would be internally by DicomObjects – e.g. a modality lookup table will not be used if ModalityLUT is false, even if it is present, and the first parameter to this method is true.  Likewise, a false value for VOILUT can enable use of window width and level where they would otherwise be over-ridden by the LUT.

Although, in principle, the overall chain could be dissected into up to 4 discreet stages, this will not always produce exactly the same result as a single operation using all 4 stages due to:

  1. Rounding errors
  2. The fact that DICOM requires the output of one lookup table to be scaled implicitly to match the input to the next, so where there is a mis-match this cannot be catered for as separate stages.

It is much more efficient to access this once and use the resulting array repeatedly than to access it repeatedly with single value inputs.

See Also