LUT Functions¶
Description¶
A LUT function is a lookup table (LUT) object (derived from ml.LUTFunction
) that specifies, how one-dimensional index values are mapped to n-dimensional output values, mainly for visualization purposes. Despite its name, a LUT function is not a real table with entries for a fixed set of index values, but instead specifies a function defined on a given index range, which may be discrete or continous. At the time when a LUT function is applied to an image, for example within a 3D volume renderer, the index value range and resolution are fixed and the LUT function is rendered into a true table. The image data values serve as index values into the table, and the corresponding table entries, representing gray, color or alpha values, are used for visualization.
In addition to such one-dimensional (1D) LUT functions, there are also two- and three-dimensional (2D, 3D) LUT functions consisting of several 1D-LUTs arranged in rows and layers. 2D- and 3D-LUTs are mainly used for certain volume rendering tasks, such as tagged volume rendering, for instance.
A number of modules are available to generate LUT functions, perform transformations and modifications, and apply a LUT function to an image. Using the MLLUT interface
contained in the MeVisLab SDK, custom LUT generators or transformations can be developed.
Terminology & Properties¶
Visual Type | The Visual Type describes the number of channels of a LUT function and their semantics. The following visual types are defined:
|
|||||||||||||||
Index Range | The index values are the input values used as indices into the lookup table. Usually these values are taken from an image, possibly after rescaling. In principle, a LUT function is defined for the complete real axis, although its relevant part is usually contained in a finite interval. This interval is called the Native Index Range, indicating the range in which the LUT function is “interesting”. | |||||||||||||||
LUT Entry Values | The LUT Entry Values are the output values of the LUT function. For a LUT with n> channels, the LUT entries are n-tupels. The entry values are always specified relative to the interval [0..1] and are rescaled to the desired output value range at the time the LUT function is rendered. | |||||||||||||||
Relative vs. Absolute | An absolute LUT function is defined on an absolute index range, i.e. the input values are taken directly from the
image voxel values. A typical application is a LUT function defined for CT images in which the LUT entries are
specified for fixed HU values. A relative LUT function is always defined on the interval [0..1], and the index range is rescaled to the value range of the image at the time the LUT is rendered. A typical example is a ramp LUT specifying a certain amount of contrast increase. |
|||||||||||||||
Rows and Layers | A two-dimensional LUT function defines a collection of 1D-LUTs arranged in rows and all having the same basic
properties (visual type, native index and value ranges). A three-dimensional LUT function defines a collection of
2D-LUTs arranged in layers and all having the same basic properties and number of rows. The index range for rows and layers always starts at 0 and is absolute. Rescaling with respect to the row or layer range is not supported. The number of rows and layers is called the height and depth of a LUT function. |
Modules¶
Generator Modules¶
LUTPrimitive
: A single channel LUT with predefined primitives of different shapesRampLUT
: A pair of RGB/alpha ramp LUTsLinearLUT
: A simple color/gray wedge LUTSoLUTEditor
: Define a LUT using a graphical editor
Transformation Modules¶
ChangeLUTColor
: Apply color, intensity and/or alpha factors to a LUTLUTRescale
: Rescale a LUT’s index rangeLUTCombiner
: Combine (add, blend, multiply, etc.) several input LUTsLUTChannelMap
: Map the channels of the input LUT to the channels of the output LUTLUTConcat
: Concatenate multiple LUTs to form a 2D- or 3D-LUTLUTBlend
: Generate a 2D- or 3D-LUT by interpolation between two 1D- or 2D-LUTs, resp.LUTSelect
: Select a 1D-LUT from a specified row/layer of a 2D- or 3D-LUT
Rendering Modules¶
SoMLLUT
: Set an ML lookup table in the state of an inventor sceneApplyLUT
: Apply LUT to an ML imageLUTCurve
: Convert a LUT into a curve objectLUTToMLImage
: Convert a LUT into an ML image
Info Modules¶
LUTInfo
: Display properties of a LUT objectDisplayLUT
: LUT viewer displaying a 1D-LUT as a diagram and as a color bar, and 2D/3D-LUTs as images