Leadtools.ImageProcessing.Core Send comments on this topic. | Back to Introduction - All Topics | Help Version 15.12.10
ApplyVoiLookupTableCommand Class
See Also  Members   Example 
Leadtools.ImageProcessing.Core Namespace : ApplyVoiLookupTableCommand Class




Sets up the paint or paint and image processing methods' window leveling options for a specific image through a lookup-table (LookupTable). This class is available in the Document/Medical Toolkits only.

Object Model


Syntax

Visual Basic (Declaration) 
Public Class ApplyVoiLookupTableCommand 
   Inherits RasterCommand
   Implements IRasterCommand 
Visual Basic (Usage)Copy Code
Dim instance As ApplyVoiLookupTableCommand
C# 
public class ApplyVoiLookupTableCommand : RasterCommand, IRasterCommand  
Managed Extensions for C++ 
public __gc class ApplyVoiLookupTableCommand : public RasterCommand, IRasterCommand  
C++/CLI 
public ref class ApplyVoiLookupTableCommand : public RasterCommand, IRasterCommand  

Example

Visual BasicCopy Code
ImageProcessing.Core.ApplyVoiLookupTableCommand
   Public Sub ApplyVoiLookupTableCommandExample()
      RasterCodecs.Startup()
      Dim codecs As New RasterCodecs()
      codecs.ThrowExceptionsOnInvalidImages = True

      Dim leadImage As RasterImage = codecs.Load("C:\Program Files\LEAD Technologies\LEADTOOLS 15\Images\IMAGE2.dic")

      ' Prepare the command
      Dim i As Integer
      Dim pLookupTable() As Short
      ReDim pLookupTable(65536)
      Dim LookupTableDescriptor As DicomLookupTableDescriptor = New DicomLookupTableDescriptor

      For i = 0 To 65536

         If (i < 30) Then
            pLookupTable(i) = 0

         Else
            If (i > 630) Then
               pLookupTable(i) = 630
            Else
               pLookupTable(i) = CType(i, Int16)
            End If

         End If

      Next

      ' fill the LookupTableDescriptor object
      LookupTableDescriptor.FirstStoredPixelValueMapped = 0
      LookupTableDescriptor.EntryBits = 16

      Dim command As ApplyVoiLookupTableCommand = New ApplyVoiLookupTableCommand
      command.Flags = VoiLookupTableCommandFlags.None
      command.LookupTable = pLookupTable
      command.LookupTableDescriptor = LookupTableDescriptor
      command.Run(leadImage)

      RasterCodecs.Shutdown()
   End Sub
C#Copy Code
ImageProcessing.Core.ApplyVoiLookupTableCommand 
      public void ApplyVoiLookupTableCommandExample() 
      { 
         // Load an image 
         RasterCodecs.Startup(); 
         RasterCodecs codecs = new RasterCodecs(); 
         codecs.ThrowExceptionsOnInvalidImages = true; 
 
         RasterImage image = codecs.Load(@"C:\Program Files\LEAD Technologies\LEADTOOLS 15\Images\IMAGE2.dic"); 
 
         // Prepare the command 
         int                i;  
         short[] pLookupTable = new short[0x10000]; 
         DicomLookupTableDescriptor LookupTableDescriptor = new DicomLookupTableDescriptor(); 
 
         for(i = 0; i < 0x10000; i++) 
         { 
            if(i < 30)  
            { 
               pLookupTable[i] = 0; 
            } 
            else 
               if(i > 630)  
               pLookupTable[i] = 630; 
            else 
               pLookupTable[i] = (short)i; 
         } 
 
         // fill the LookupTableDescriptor object 
         LookupTableDescriptor.FirstStoredPixelValueMapped = 0; 
         LookupTableDescriptor.EntryBits = 16; 
 
         ApplyVoiLookupTableCommand command = new ApplyVoiLookupTableCommand(); 
         command.Flags                      = VoiLookupTableCommandFlags.None; 
         command.LookupTable                = pLookupTable; 
         command.LookupTableDescriptor      = LookupTableDescriptor; 
         command.Run(image); 
 
         RasterCodecs.Shutdown(); 
      }

Remarks

  • This class sets up the paint or paint and image processing methods' window leveling options for a specific image through a lookup-table (LookupTable). In the DICOM world, this is referred to as "applying a non-linear VOI LookupTable".
  • This class will remap the LookupTable used to display and process an image by applying a user-defined lookup table. In the DICOM world this is referred to as applying a "non-linear VOI LookupTable". The DICOM standard states:
  • "A VOI LookupTable defines the transformation of the modality pixel values into pixel values that are meaningful for print, display, etc. This transformation is applied after any Modality LookupTable". Please see "VOI LookupTable Module Attributes" in the DICOM standard for more details.
  • This class does not change the image data; it only updates the entries inside the image display LookupTable.
  • The value is remapped according to the LookupTable (values smaller than FirstStoredPixelValueMapped (property of the DicomLookupTableDescriptor class) are mapped to the first LookupTable entry, while values greater than FirstStoredPixelValueMapped (property of the DicomLookupTableDescriptor class) + LookupTable->Length are mapped to the last LookupTable entry).
  • It is recommended to always set the VoiLookupTableCommandFlags flag.
  • In the DICOM world you will need to set the VoiLookupTableCommandFlags flag if the photometric interpretation of the image is "MONOCHROME1", where the minimum grayscale value is intended to be displayed as white after any VOI gray scale transformations have been performed.
  • This class supports 12 and 16-bit grayscale. Support for 12 and 16-bit grayscale is available only in the Document/Medical toolkits.
  • This command does not support 32-bit grayscale images.
For more information, refer to Changing Brightness and Contrast.

Inheritance Hierarchy

System.Object
   Leadtools.ImageProcessing.RasterCommand
      Leadtools.ImageProcessing.Core.ApplyVoiLookupTableCommand

Requirements

Target Platforms: Microsoft .NET Framework 2.0, Windows 98, Windows NT 4.0, Windows Millennium Edition, Windows 2000, Windows XP Home Edition, Windows XP Professional, Windows Server 2003 family

See Also