←Select platform

LookupTable Property

Summary
Gets or sets an optional 16-bit lookup table that can be used to implement a user defined conversion.
Syntax
C#
Objective-C
C++/CLI
Java
Python
public RasterColor16[] LookupTable { get; set; } 
@property (nonatomic, strong) NSMutableArray<LTRasterColor16 *> *lookupTable; 
public RasterColor16[ getLookupTable(); 
public void setLookupTable( 
   RasterColor16[] rasterColor16[ 
); 
public: 
property array<RasterColor16>^ LookupTable { 
   array<RasterColor16>^ get(); 
   void set (    array<RasterColor16>^ ); 
} 
LookupTable # get and set (WindowLevelExtCommand) 

Property Value

Optional lookup table that can be used to implement a user defined conversion. For every intensity value between 0 and 2 raised to the power of (HighBit - LowBit + 1) - 1 there should be a corresponding entry in the lookup table that contains an 16-bit RGB quad. If LookupTable is null, the conversion is a normal shift (right or left) and the output image is 16-bit grayscale. If LookupTable is not null, the output image is a 48-bit image.

Example
C#
Java
using Leadtools; 
using Leadtools.Codecs; 
using Leadtools.ImageProcessing; 
using Leadtools.ImageProcessing.Core; 
 
public void WindowLevelExtCommandExample() 
{ 
   // Load an image 
   RasterCodecs codecs = new RasterCodecs(); 
   codecs.ThrowExceptionsOnInvalidImages = true; 
 
   RasterImage image = codecs.Load(Path.Combine(LEAD_VARS.ImagesDir, "IMAGE3.dcm")); 
 
   // Prepare the command 
   int x; 
   int y; 
   int Size; 
   RasterColor16[] LookupTable; 
 
   MinMaxBitsCommand MinMaxBits = new MinMaxBitsCommand(); 
   MinMaxValuesCommand MinMaxValues = new MinMaxValuesCommand(); 
   WindowLevelExtCommand command = new WindowLevelExtCommand(); 
 
   MinMaxBits.Run(image); 
   MinMaxValues.Run(image); 
 
   Size = (1 << (MinMaxBits.MaximumBit - MinMaxBits.MinimumBit + 1)); 
   LookupTable = new Leadtools.RasterColor16[Size]; 
 
   // fill the first half of the LookupTable with RED. 
   for (x = 0; x < Size / 2; x++) 
      LookupTable[x] = new Leadtools.RasterColor16(Leadtools.RasterColor16.MaximumComponent, 0, 0); 
 
   // fill the rest with gray values. 
   for (x = Size / 2; x < Size; x++) 
   { 
      y = (int)((x - MinMaxValues.MinimumValue) * Leadtools.RasterColor16.MaximumComponent / (MinMaxValues.MaximumValue - MinMaxValues.MinimumValue)); 
      LookupTable[x] = new Leadtools.RasterColor16(y, y, y); 
   } 
 
   command.HighBit = MinMaxBits.MaximumBit; 
   command.LowBit = MinMaxBits.MinimumBit; 
   command.LookupTable = LookupTable; 
   command.Order = Leadtools.RasterByteOrder.Bgr; 
 
   command.Run(image); 
 
} 
 
static class LEAD_VARS 
{ 
   public const string ImagesDir = @"C:\LEADTOOLS23\Resources\Images"; 
} 
 
import java.io.File; 
import java.io.IOException; 
 
import org.junit.*; 
import org.junit.Test; 
import org.junit.runner.JUnitCore; 
import org.junit.runner.Result; 
import org.junit.runner.notification.Failure; 
import static org.junit.Assert.*; 
 
import leadtools.*; 
import leadtools.codecs.*; 
import leadtools.imageprocessing.core.*; 
 
 
public void windowLevelExtCommandExample() { 
 
    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, "beauty16.jpg")); 
 
    // Prepare the command 
    int x; 
    int y; 
    int size; 
    RasterColor16[] lookupTable; 
 
    MinMaxBitsCommand minMaxBits = new MinMaxBitsCommand(); 
    MinMaxValuesCommand minMaxValues = new MinMaxValuesCommand(); 
    WindowLevelExtCommand command = new WindowLevelExtCommand(); 
 
    minMaxBits.run(image); 
    minMaxValues.run(image); 
 
    size = (1 << (minMaxBits.getMaximumBit() - minMaxBits.getMinimumBit() + 1)); 
    lookupTable = new RasterColor16[size]; 
 
    // fill the first half of the LookupTable with RED 
    for (x = 0; x < size / 2; x++) { 
        lookupTable[x] = new RasterColor16(RasterColor16.MAXIMUM_COMPONENT, 0, 0); 
    } 
 
    // fill the rest with gray values 
    for (x = size / 2; x < size; x++) { 
        y = (int) (x - minMaxValues.getMinimumValue()) * RasterColor16.MAXIMUM_COMPONENT 
                / (minMaxValues.getMaximumValue() - minMaxValues.getMinimumValue()); 
        lookupTable[x] = new RasterColor16(y, y, y); 
    } 
 
    command.setHighBit(minMaxBits.getMaximumBit()); 
    command.setLowBit(minMaxBits.getMinimumBit()); 
    command.setLookupTable(lookupTable); 
    command.setOrder(RasterByteOrder.BGR); 
 
    int change = command.run(image); 
    assertTrue(change != RasterImageChangedFlags.NONE); 
 
    codecs.save(image, combine(LEAD_VARS_IMAGES_DIR, "Result.jpg"), RasterImageFormat.JPEG, 24); 
    System.out.println("Command run and image saved to: " + combine(LEAD_VARS_IMAGES_DIR, "Result.jpg")); 
} 
Requirements

Target Platforms

Help Version 23.0.2024.3.3
Products | Support | Contact Us | Intellectual Property Notices
© 1991-2024 LEAD Technologies, Inc. All Rights Reserved.

Leadtools.ImageProcessing.Core Assembly

Products | Support | Contact Us | Intellectual Property Notices
© 1991-2023 LEAD Technologies, Inc. All Rights Reserved.