public class ApplyLinearModalityLookupTableCommand : RasterCommand
@interface LTApplyLinearModalityLookupTableCommand : LTRasterCommand
public class ApplyLinearModalityLookupTableCommand
extends RasterCommand
public ref class ApplyLinearModalityLookupTableCommand : public RasterCommand
class ApplyLinearModalityLookupTableCommand(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.
using Leadtools;
using Leadtools.Codecs;
using Leadtools.ImageProcessing.Core;
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;
command.Run(image);
}
static class LEAD_VARS
{
public const string ImagesDir = @"C:\LEADTOOLS23\Resources\Images";
}
import static org.junit.Assert.assertTrue;
import java.io.File;
import java.io.IOException;
import org.junit.*;
import org.junit.runner.JUnitCore;
import org.junit.runner.Result;
import org.junit.runner.notification.Failure;
import leadtools.*;
import leadtools.codecs.*;
import leadtools.imageprocessing.core.*;
public void applyLinearModalityLookupTableCommandExample() {
final String LEAD_VARS_IMAGES_DIR = "C:\\LEADTOOLS23\\Resources\\Images";
// Load an image
RasterCodecs codecs = new RasterCodecs();
codecs.setThrowExceptionsOnInvalidImages(true);
RasterImage image = codecs.load(combine(LEAD_VARS_IMAGES_DIR, "DICOM\\image1.dcm"));
// Prepare the command
ApplyLinearModalityLookupTableCommand command = new ApplyLinearModalityLookupTableCommand();
command.setFlags(ModalityLookupTableCommandFlags.NONE.getValue());
command.setIntercept(0.0);
command.setSlope(0.5);
command.run(image);
codecs.save(image, combine(LEAD_VARS_IMAGES_DIR, "DICOM\\CR\\cr1.jpg"), RasterImageFormat.JPEG, 24);
System.out.println("Command run and image saved to " + combine(LEAD_VARS_IMAGES_DIR, "DICOM\\CR\\cr1.jpg"));
assertTrue(new File(combine(LEAD_VARS_IMAGES_DIR, "DICOM\\CR\\cr1.jpg")).exists());
}
ApplyLinearModalityLookupTableCommand Members
Leadtools.ImageProcessing.Core Namespace
Changing Brightness and Contrast
Leadtools.ImageProcessing.Color.RemapIntensityCommand
ApplyLinearModalityLookupTableCommand Class
ApplyVoiLookupTableCommand Class
ApplyLinearVoiLookupTableCommand Class
Help Collections
Raster .NET | C API | C++ Class Library | HTML5 JavaScript
Document .NET | C API | C++ Class Library | HTML5 JavaScript
Medical .NET | C API | C++ Class Library | HTML5 JavaScript
Medical Web Viewer .NET
Multimedia
Direct Show .NET | C API | Filters
Media Foundation .NET | C API | Transforms
Supported Platforms
.NET, Java, Android, and iOS/macOS Assemblies
Imaging, Medical, and Document
C API/C++ Class Libraries
Imaging, Medical, and Document
HTML5 JavaScript Libraries
Imaging, Medical, and Document