Remaps the image pixels by applying a linear transformation described by a rescale slope and an intercept.
public class ApplyLinearModalityLookupTableCommand : RasterCommand Public Class ApplyLinearModalityLookupTableCommandInherits Leadtools.Imageprocessing.Leadtools.ImageProcessing.RasterCommandImplements Leadtools.Imageprocessing.Leadtools.ImageProcessing.IRasterCommand
public sealed class ApplyLinearModalityLookupTableCommand : Leadtools.Imageprocessing.Leadtools.ImageProcessing.IRasterCommand @interface LTApplyLinearModalityLookupTableCommand : LTRasterCommand public class ApplyLinearModalityLookupTableCommand extends RasterCommand function Leadtools.ImageProcessing.Core.ApplyLinearModalityLookupTableCommand() public ref class ApplyLinearModalityLookupTableCommand : public Leadtools.Imageprocessing.Leadtools.ImageProcessing.RasterCommand, Leadtools.Imageprocessing.Leadtools.ImageProcessing.IRasterCommand 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. In Silverlight versions of LEADTOOLS, this image processing command will fail if the image data for the RasterImage object is stored internally using a Silverlight WriteableBitmap object. For more information, refer to Image Processing Command Limitations in Silverlight.
Runs the ApplyLinearModalityLookupTableCommand on an image.
using Leadtools;using Leadtools.Codecs;using Leadtools.ImageProcessing.Core;public void ApplyLinearModalityLookupTableCommandExample(){// Load an imageRasterCodecs codecs = new RasterCodecs();codecs.ThrowExceptionsOnInvalidImages = true;RasterImage image = codecs.Load(Path.Combine(LEAD_VARS.ImagesDir, "IMAGE2.dcm"));// Prepare the commandApplyLinearModalityLookupTableCommand command = new ApplyLinearModalityLookupTableCommand();command.Flags = ModalityLookupTableCommandFlags.None;command.Intercept = 0.0;command.Slope = 0.5;command.Run(image);}static class LEAD_VARS{public const string ImagesDir = @"C:\Users\Public\Documents\LEADTOOLS Images";}
Imports LeadtoolsImports Leadtools.CodecsImports Leadtools.ImageProcessing.CoreLeadtools.Examples.Support.SetLicense()Public Sub ApplyLinearModalityLookupTableCommandExample()Dim codecs As New RasterCodecs()codecs.ThrowExceptionsOnInvalidImages = TrueDim leadImage As RasterImage = codecs.Load(Path.Combine(LEAD_VARS.ImagesDir, "IMAGE2.dcm"))' Prepare the commandDim command As ApplyLinearModalityLookupTableCommand = New ApplyLinearModalityLookupTableCommandcommand.Flags = ModalityLookupTableCommandFlags.Nonecommand.Intercept = 0.0command.Slope = 0.5command.Run(leadImage)End SubPublic NotInheritable Class LEAD_VARSPublic Const ImagesDir As String = "C:\Users\Public\Documents\LEADTOOLS Images"End Class
using Leadtools;using Leadtools.Examples;using Leadtools.Codecs;using Leadtools.ImageProcessing.Core;public void ApplyLinearModalityLookupTableCommandExample(RasterImage image, Stream outStream){// Prepare the commandApplyLinearModalityLookupTableCommand command = new ApplyLinearModalityLookupTableCommand();command.Flags = ModalityLookupTableCommandFlags.None;command.Intercept = 0.0;command.Slope = 0.5;command.Run(image);// Save result imageRasterCodecs codecs = new RasterCodecs();codecs.Save(image, outStream, RasterImageFormat.DicomGray, image.BitsPerPixel);image.Dispose();}
Imports LeadtoolsImports Leadtools.CodecsImports Leadtools.ImageProcessing.CorePublic Sub ApplyLinearModalityLookupTableCommandExample(ByVal image As RasterImage, ByVal outStream As Stream)' Prepare the commandDim command As ApplyLinearModalityLookupTableCommand = New ApplyLinearModalityLookupTableCommand()command.Flags = ModalityLookupTableCommandFlags.Nonecommand.Intercept = 0.0command.Slope = 0.5command.Run(image)' Save result imageDim codecs As RasterCodecs = New RasterCodecs()codecs.Save(image, outStream, RasterImageFormat.DicomGray, image.BitsPerPixel)image.Dispose()End Sub
ApplyLinearModalityLookupTableCommand Members
Leadtools.ImageProcessing.Core Namespace
Changing Brightness and Contrast
Leadtools.ImageProcessing.Color.RemapIntensityCommand
ApplyLinearModalityLookupTableCommand Class
ApplyVoiLookupTableCommand Class
ApplyLinearVoiLookupTableCommand Class
Raster .NET | C API | C++ Class Library | JavaScript HTML5
Document .NET | C API | C++ Class Library | JavaScript HTML5
Medical .NET | C API | C++ Class Library | JavaScript HTML5
Medical Web Viewer .NET
