public class ApplyLinearModalityLookupTableCommand : RasterCommand
Public Class ApplyLinearModalityLookupTableCommand
@interface LTApplyLinearModalityLookupTableCommand : LTRasterCommand
public class ApplyLinearModalityLookupTableCommand extends RasterCommand
public ref class ApplyLinearModalityLookupTableCommand : public RasterCommand
This command is available in the Document and Medical Imaging toolkits.
The linear transformation is described by the equation: Y = mX + b where m: slope of a straight line (this is also referred to as "Rescale Slope" in the DICOM world). b: the y-intercept of a straight line (this is also referred to as "Rescale Intercept" in the DICOM world). Y: the resulting pixel value. X: the input or original pixel value.
According to the DICOM standard a "Modality LookupTable (LookupTable)" defines the transformation of manufacturer-dependent pixel values into pixel values which are manufacturer-independent (e.g. Hounsfield units for CT, Optical Density for film digitizers, etc.).
For example, suppose there is an image with the following characteristics: BitsPerPixel = 12 LowBit = 4 HighBit = 10 In this case, there are 10-4+1=7 valid bits. This means that there are 128 values to remap.
If the ModalityLookupTableCommandFlags.AllowRangeExpansion flag is set in the Flags property, consider the following example: The dataset has the following attributes: BitsPerPixel 16 HighBit 11 LowBit 0 Pixel Range 0 to +4095, Unsigned The number of bits stored inside the image is 11-0+1 =12. If the fIntercept is set to -1024 and the fSlope is set to 0, then after applying the rescale slope and intercept: Output minimum pixel value = (0 *1 +(-1024))= -1024 Output maximum pixel value = (4095 *1 +(-1024))= 3071
The new pixel value range (-1024 to 3071) cannot be represented with the current bits stored (12 bits), which can represent values in the range (-2048 to 2048). In this case the class will change the high bit inside the image handle to be 12 instead of 11 (bits stored becomes 13), which can represent values in the range (-8192 to 8191).
For more information, refer to Changing Brightness and Contrast.
Runs the ApplyLinearModalityLookupTableCommand on an image.
public void ApplyLinearModalityLookupTableCommandExample()
// Load an image
RasterCodecs codecs = new RasterCodecs();
codecs.ThrowExceptionsOnInvalidImages = true;
RasterImage image = codecs.Load(Path.Combine(LEAD_VARS.ImagesDir, "IMAGE2.dcm"));
// Prepare the command
ApplyLinearModalityLookupTableCommand command = new ApplyLinearModalityLookupTableCommand();
command.Flags = ModalityLookupTableCommandFlags.None;
command.Intercept = 0.0;
command.Slope = 0.5;
static class LEAD_VARS
public const string ImagesDir = @"C:\LEADTOOLS21\Resources\Images";
Public Sub ApplyLinearModalityLookupTableCommandExample()
Dim codecs As New RasterCodecs()
codecs.ThrowExceptionsOnInvalidImages = True
Dim leadImage As RasterImage = codecs.Load(Path.Combine(LEAD_VARS.ImagesDir, "IMAGE2.dcm"))
' Prepare the command
Dim command As ApplyLinearModalityLookupTableCommand = New ApplyLinearModalityLookupTableCommand
command.Flags = ModalityLookupTableCommandFlags.None
command.Intercept = 0.0
command.Slope = 0.5
Public NotInheritable Class LEAD_VARS
Public Const ImagesDir As String = "C:\LEADTOOLS21\Resources\Images"
Medical Web Viewer .NET
.NET, Java, Android, and iOS/macOS Assemblies
C API/C++ Class Libraries