Leadtools.ImageProcessing.Core Send comments on this topic. | Back to Introduction - All Topics | Help Version 16.5.9.25
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  
C++/CLI 
public ref class ApplyVoiLookupTableCommand : public RasterCommand, IRasterCommand  

Example

Run the ApplyVoiLookupTableCommand on an image.

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

   Dim leadImage As RasterImage = codecs.Load(LeadtoolsExamples.Common.ImagesPath.Path + "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
public void ApplyVoiLookupTableCommandExample() 

   // Load an image 
   RasterCodecs.Startup(); 
   RasterCodecs codecs = new RasterCodecs(); 
   codecs.ThrowExceptionsOnInvalidImages = true; 
 
   RasterImage image = codecs.Load(LeadtoolsExamples.Common.ImagesPath.Path + "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