Purpose

The module DicomLUT generates a lookup table (LUT) object from the DICOM tags of the input image.

The generated LUT is a composition of multiple lookups, optionally including the DICOM Modality LUT, a DICOM VOI (volume of interest) LUT, a differential window transformation (shift/stretch) applied to the VOI LUT, and an additional LUT provided at the inLUT input field of this module.

Usage

Connect a DICOM image to the module's image input and select the DICOM LUT components to be evaluated.

Optionally connect an additional LUT object to the module's LUT input.

Details

A DICOM image may define the following lookup tables to be applied to the image data:

  • The Modality LUT mapping the stored voxel values to the so-called output voxel values (e.g. in Hounsfield units for CT data). The modality LUT is either defined as a linear mapping by the Rescale Slope and Rescale Intercept tags, or by a data table in the Modality LUT Sequence.
  • One ore more VOI LUTs mapping the output voxel values to the visible gray value range. This mapping can be a ramp or a sigmoid function defined by the Window Center and Window Width tags, or an arbitrary table stored in the VOI LUT Sequence.
  • Presentation LUTs are currently not supported.

The output pixel value range to which the VOI LUT is applied can be modified by a differential window transformation, specified by the Window Shift and Window Stretch fields. The window shift value shifts the output pixel value range by a positive or negative offset, the window stretch value expands or reduces the range by a relative factor.

The DICOM Modality LUT and/or one of the VOI LUTs can optionally be composed with an additional LUT provided at the module's LUT input field. The output values of the Modality LUT have an absolute reference and can hence be used as input values to an absolute LUT (i.e. a LUT with an absolute index range). The output values of a VOI LUT are only defined relative to the visible gray value range, hence the mapping to the index range of an absolute LUT would be undefined. As a consequence, the composition of a VOI LUT with an additional, absolute LUT provided at the module's LUT input field results in an invalid output.

A modality LUT (either linear or non-linear) stored with an XA (X-Ray Angiography) or XRF (Radio Fluoroscopy) DICOM image is ignored by the DicomLUT module, as the modality LUT has special semantics in these types of images.

See LUT Functions for general information about ML lookup tables.

Windows

Default Panel

../../../Modules/ML/MLLUTTools/mhelp/Images/Screenshots/DicomLUT._default.png

Input Fields

input0

name: input0, type: Image

A DICOM image can be connected to the module's image input.

If no image is connected, or if the image has no DICOM tags defining a Modality or VOI LUT, default LUTs are assumed.

inLUT

name: inLUT, type: MLBase

A lookup table (LUTFunction) object can be connected to the module's inLUT input field as an additional lookup table to be composed with the selected DICOM LUTs.

Output Fields

outLUT

name: outLUT, type: MLBase

The lookup table generated by this module is presented as a LUTFunction object at the outLUT field.

Parameter Fields

Field Index

(: Integer Output LUT valid: Bool voiLutDescriptionList: String
Description: String Output Min: Double Width: Double
DICOM LUT: Enum Rescale Slope: Double Window Center: Double
Intercept: Double Reset Window: Trigger Window Shift: Double
Max (storedMax): Double Stored Min: Double Window Stretch: Double
Max (outputMax): Double Type (modalityLutType): Enum  
maxWindowShift: Double Type (voiLutType): Enum  
minWindowShift: Double VOI LUT Index: Integer  

Visible Fields

Stored Min

name: storedMin, type: Double, default: 0

Show the minimum value of the stored LUT value.

Max (storedMax)

name: storedMax, type: Double, default: 0

Show the maximum value of the stored LUT value.

Output Min

name: outputMin, type: Double, default: 0

Show the minimum output value (after rescaling).

Max (outputMax)

name: outputMax, type: Double, default: 0

Show the maximum output value (after rescaling).

Type (modalityLutType)

name: modalityLutType, type: Enum, default: Undefined

Defines the type of the modality LUT.

Values:

Title Name Description
Undefined Undefined No modality LUT is defined.
Linear Linear The modality LUT is defined as a linear rescaling with the Rescale Slope and Intercept as given below.
Non Linear NonLinear The modality LUT is defined as a discrete data table.

Rescale Slope

name: rescaleSlope, type: Double, default: 1

Sets the slope value for transforming the stored value to the output value.

outputValue = storedValue * slope + intercept

Intercept

name: rescaleIntercept, type: Double, default: 0

Sets the interscept value for transforming the stored value to the output value.

outputValue = storedValue * slope + intercept

(

name: voiLutsAvailable, type: Integer, default: 0

Shows the number of available LUT indices.

VOI LUT Index

name: voiLutIndex, type: Integer, default: -1, minimum: 0, maximum: -1

Sets the current VOI LUT index.

Description

name: voiLutDescription, type: String

Shows a descriptive string about the current VOI LUT.

Type (voiLutType)

name: voiLutType, type: Enum, default: Undefined

Defines the type of the current VOI LUT.

Values:

Title Name Description
Undefined Undefined No VOI LUT is defined.
Linear Linear The VOI LUT is defined as a ramp function with the Window Center and Width values.
Sigmoid Sigmoid The VOI LUT is defined as a sigmoid function with the Window Center and Width values.
Non Linear NonLinear The VOI LUT is defined as a discrete data table.

Window Center

name: windowCenter, type: Double, default: 0

Sets the position of the VOI LUT function.

Width

name: windowWidth, type: Double, default: 0

Sets the width of the VOI LUT function.

DICOM LUT

name: dicomLUT, type: Enum, default: ModalityVOILUT

Defines the DICOM LUTs included in the composition of the output LUT.

Values:

Title Name Description
None None No DICOM LUT is used, the output LUT is identical to the additional input LUT (if connected) or represents a default ramp LUT.
Modality LUT ModalityLUT The output LUT represents the DICOM Modality LUT, optionally composed with the additional input LUT.
VOI LUT VOILUT The output LUT represents the DICOM VOI LUT selected by the VOI LUT Index field, optionally composed with the additional input LUT.
Modality & VOI LUT ModalityVOILUT The output LUT represents the composition of the DICOM Modality LUT with the VOI LUT selected by the VOI LUT Index field. The result is optionally composed with the additional input LUT.

Window Shift

name: windowShift, type: Double, default: 0, minimum: :field:`minWindowShift`, maximum: :field:`maxWindowShift`

Sets a shift value for the output pixel value range to which the VOI LUT is applied by a positive or negative offset.

Window Stretch

name: windowStretch, type: Double, default: 1, minimum: 0, maximum: 5

Sets a value to extend or to reduce the output pixel value range to which the VOI LUT is applied by a relative factor.

Reset Window

name: resetWindow, type: Trigger

If pressed, the Window Shift is set to 0 and the Window Stretch is set to 1.

Output LUT valid

name: outLutValid, type: Bool, default: FALSE

Shows whether the output LUT is valid.

Hidden Fields

voiLutDescriptionList

name: voiLutDescriptionList, type: String

minWindowShift

name: minWindowShift, type: Double, default: 0

maxWindowShift

name: maxWindowShift, type: Double, default: 0