LEADTOOLS Medical (Leadtools.Dicom assembly) Send comments on this topic. | Back to Introduction - All Topics | Help Version 17.0.3.29
DeletePaletteColorLut Method
See Also 
Leadtools.Dicom Namespace > DicomDataSet Class : DeletePaletteColorLut Method



Deletes all the elements that describe the "Palette Color Lookup Table". Supported in Silverlight, Windows Phone 7.

Syntax

Visual Basic (Declaration) 
Public Sub DeletePaletteColorLut() 
Visual Basic (Usage)Copy Code
Dim instance As DicomDataSet
 
instance.DeletePaletteColorLut()
C# 
public void DeletePaletteColorLut()
C++/CLI 
public:
void DeletePaletteColorLut(); 

Example

This example will load a DICOM dataset, update its palette color LUT and then verify that the LUT was updated properly.

Visual BasicCopy Code
Public Sub TestPaletteColorLut()
   Dim dicomFileName As String = LeadtoolsExamples.Common.ImagesPath.Path + "IMAGE3.dcm"
   'Make sure to initialize the DICOM engine, this needs to be done only once 
   'In the whole application
   DicomEngine.Startup()

   Dim ds As DicomDataSet = New DicomDataSet()
   Using (ds)
      Dim paletteColorLutSize As Integer = 65536
      'Load DICOM File
      ds.Load(dicomFileName, DicomDataSetLoadFlags.None)
      ds.DeletePaletteColorLut()
      Dim paletteColorLutAttributes As DicomPaletteColorLutAttributes = New DicomPaletteColorLutAttributes()
      ' Initialize Red Palette Color Lookup Table Descriptor (0028,1101) 
      paletteColorLutAttributes.RedFirstStoredPixelValueMapped = 0
      paletteColorLutAttributes.RedEntryBits = 16
      paletteColorLutAttributes.RedNumberOfEntries = paletteColorLutSize

      ' Initialize Green Palette Color Lookup Table Descriptor (0028,1102) 
      paletteColorLutAttributes.GreenFirstStoredPixelValueMapped = 0
      paletteColorLutAttributes.GreenEntryBits = 16
      paletteColorLutAttributes.GreenNumberOfEntries = paletteColorLutSize

      ' Initialize Blue Palette Color Lookup Table Descriptor (0028,1103) 
      paletteColorLutAttributes.BlueFirstStoredPixelValueMapped = 0
      paletteColorLutAttributes.BlueEntryBits = 16
      paletteColorLutAttributes.BlueNumberOfEntries = paletteColorLutSize

      ds.SetPaletteColorLutAttributes(paletteColorLutAttributes)

      Dim LutData As Integer() = New Integer(paletteColorLutSize - 1) {}
      Dim i As Integer = 0
      Do While i < paletteColorLutSize
         LutData(i) = i
         i += 1
      Loop

      ds.SetPaletteColorLutData(LutData, DicomPaletteColorLutType.Red)
      ds.SetPaletteColorLutData(LutData, DicomPaletteColorLutType.Green)
      ds.SetPaletteColorLutData(LutData, DicomPaletteColorLutType.Blue)

      Dim attributes As DicomPaletteColorLutAttributes = ds.GetPaletteColorLutAttributes()
      If Not attributes Is Nothing Then
         Debug.Assert(attributes.RedNumberOfEntries = paletteColorLutSize)
         Debug.Assert(attributes.GreenNumberOfEntries = paletteColorLutSize)
         Debug.Assert(attributes.BlueNumberOfEntries = paletteColorLutSize)

         Dim data As Integer() = ds.GetPaletteColorLutData(DicomPaletteColorLutType.Red)
         ' Do something with the data
      End If
      ds.Save(LeadtoolsExamples.Common.ImagesPath.Path + "PLUT.dcm", DicomDataSetSaveFlags.None)
   End Using
   DicomEngine.Shutdown()
End Sub
C#Copy Code
public void TestPaletteColorLut()
{
   string dicomFileName = LeadtoolsExamples.Common.ImagesPath.Path + "IMAGE3.dcm";
   //Make sure to initialize the DICOM engine, this needs to be done only once 
   //In the whole application
   DicomEngine.Startup();
   using (DicomDataSet ds = new DicomDataSet())
   {
      int paletteColorLutSize = 65536;
      //Load DICOM File
      ds.Load(dicomFileName, DicomDataSetLoadFlags.None);
      ds.DeletePaletteColorLut();
      DicomPaletteColorLutAttributes paletteColorLutAttributes = new DicomPaletteColorLutAttributes();
      // Initialize Red Palette Color Lookup Table Descriptor (0028,1101) 
      paletteColorLutAttributes.RedFirstStoredPixelValueMapped = 0;
      paletteColorLutAttributes.RedEntryBits = 16;
      paletteColorLutAttributes.RedNumberOfEntries = paletteColorLutSize;

      // Initialize Green Palette Color Lookup Table Descriptor (0028,1102) 
      paletteColorLutAttributes.GreenFirstStoredPixelValueMapped = 0;
      paletteColorLutAttributes.GreenEntryBits = 16;
      paletteColorLutAttributes.GreenNumberOfEntries = paletteColorLutSize;

      // Initialize Blue Palette Color Lookup Table Descriptor (0028,1103) 
      paletteColorLutAttributes.BlueFirstStoredPixelValueMapped = 0;
      paletteColorLutAttributes.BlueEntryBits = 16;
      paletteColorLutAttributes.BlueNumberOfEntries = paletteColorLutSize;

      ds.SetPaletteColorLutAttributes(paletteColorLutAttributes);

      int[] LutData = new int[paletteColorLutSize];
      for (int i = 0; i < paletteColorLutSize; i++)
      {
         LutData[i] = i;
      }

      ds.SetPaletteColorLutData(LutData, DicomPaletteColorLutType.Red);
      ds.SetPaletteColorLutData(LutData, DicomPaletteColorLutType.Green);
      ds.SetPaletteColorLutData(LutData, DicomPaletteColorLutType.Blue);

      DicomPaletteColorLutAttributes attributes = ds.GetPaletteColorLutAttributes();
      if (attributes != null)
      {
         Debug.Assert(attributes.RedNumberOfEntries == paletteColorLutSize);
         Debug.Assert(attributes.GreenNumberOfEntries == paletteColorLutSize);
         Debug.Assert(attributes.BlueNumberOfEntries == paletteColorLutSize);

         int[] data = ds.GetPaletteColorLutData(DicomPaletteColorLutType.Red);
         // Do something with the data
      }
      ds.Save(LeadtoolsExamples.Common.ImagesPath.Path + "PLUT.dcm", DicomDataSetSaveFlags.None);
   }
   DicomEngine.Shutdown();
}
SilverlightCSharpCopy Code
public void TestPaletteColorLut(Stream dicomStream, Stream outputStream)
{
   //Make sure to initialize the DICOM engine, this needs to be done only once 
   //In the whole application
   DicomEngine.Startup();
   using (DicomDataSet ds = new DicomDataSet())
   {
      int paletteColorLutSize = 65536;
      //Load DICOM File
      ds.Load(dicomStream, DicomDataSetLoadFlags.None);
      ds.DeletePaletteColorLut();
      DicomPaletteColorLutAttributes paletteColorLutAttributes = new DicomPaletteColorLutAttributes();
      // Initialize Red Palette Color Lookup Table Descriptor (0028,1101) 
      paletteColorLutAttributes.RedFirstStoredPixelValueMapped = 0;
      paletteColorLutAttributes.RedEntryBits = 16;
      paletteColorLutAttributes.RedNumberOfEntries = paletteColorLutSize;
      // Initialize Green Palette Color Lookup Table Descriptor (0028,1102) 
      paletteColorLutAttributes.GreenFirstStoredPixelValueMapped = 0;
      paletteColorLutAttributes.GreenEntryBits = 16;
      paletteColorLutAttributes.GreenNumberOfEntries = paletteColorLutSize;

      // Initialize Blue Palette Color Lookup Table Descriptor (0028,1103) 
      paletteColorLutAttributes.BlueFirstStoredPixelValueMapped = 0;
      paletteColorLutAttributes.BlueEntryBits = 16;
      paletteColorLutAttributes.BlueNumberOfEntries = paletteColorLutSize;

      ds.SetPaletteColorLutAttributes(paletteColorLutAttributes);

      int[] LutData = new int[paletteColorLutSize];
      for (int i = 0; i < paletteColorLutSize; i++)
      {
         LutData[i] = i;
      }

      ds.SetPaletteColorLutData(LutData, DicomPaletteColorLutType.Red);
      ds.SetPaletteColorLutData(LutData, DicomPaletteColorLutType.Green);
      ds.SetPaletteColorLutData(LutData, DicomPaletteColorLutType.Blue);

      DicomPaletteColorLutAttributes attributes = ds.GetPaletteColorLutAttributes();
      if (attributes != null)
      {
         Debug.Assert(attributes.RedNumberOfEntries == paletteColorLutSize);
         Debug.Assert(attributes.GreenNumberOfEntries == paletteColorLutSize);
         Debug.Assert(attributes.BlueNumberOfEntries == paletteColorLutSize);

         int[] data = ds.GetPaletteColorLutData(DicomPaletteColorLutType.Red);
         // Do something with the data
      }
      ds.Save(outputStream, DicomDataSetSaveFlags.None);
   }
   DicomEngine.Shutdown();
}
SilverlightVBCopy Code
Public Sub TestPaletteColorLut(ByVal dicomStream As Stream, ByVal outputStream As Stream)
   'Make sure to initialize the DICOM engine, this needs to be done only once 
   'In the whole application
   DicomEngine.Startup()
   Using ds As DicomDataSet = New DicomDataSet()
      Dim paletteColorLutSize As Integer = 65536
      'Load DICOM File
      ds.Load(dicomStream, DicomDataSetLoadFlags.None)
      ds.DeletePaletteColorLut()
      Dim paletteColorLutAttributes As DicomPaletteColorLutAttributes = New DicomPaletteColorLutAttributes()
      ' Initialize Red Palette Color Lookup Table Descriptor (0028,1101) 
      paletteColorLutAttributes.RedFirstStoredPixelValueMapped = 0
      paletteColorLutAttributes.RedEntryBits = 16
      paletteColorLutAttributes.RedNumberOfEntries = paletteColorLutSize
      ' Initialize Green Palette Color Lookup Table Descriptor (0028,1102) 
      paletteColorLutAttributes.GreenFirstStoredPixelValueMapped = 0
      paletteColorLutAttributes.GreenEntryBits = 16
      paletteColorLutAttributes.GreenNumberOfEntries = paletteColorLutSize

      ' Initialize Blue Palette Color Lookup Table Descriptor (0028,1103) 
      paletteColorLutAttributes.BlueFirstStoredPixelValueMapped = 0
      paletteColorLutAttributes.BlueEntryBits = 16
      paletteColorLutAttributes.BlueNumberOfEntries = paletteColorLutSize

      ds.SetPaletteColorLutAttributes(paletteColorLutAttributes)

      Dim LutData As Integer() = New Integer(paletteColorLutSize - 1){}
      Dim i As Integer = 0
      Do While i < paletteColorLutSize
         LutData(i) = i
         i += 1
      Loop

      ds.SetPaletteColorLutData(LutData, DicomPaletteColorLutType.Red)
      ds.SetPaletteColorLutData(LutData, DicomPaletteColorLutType.Green)
      ds.SetPaletteColorLutData(LutData, DicomPaletteColorLutType.Blue)

      Dim attributes As DicomPaletteColorLutAttributes = ds.GetPaletteColorLutAttributes()
      If Not attributes Is Nothing Then
         Debug.Assert(attributes.RedNumberOfEntries = paletteColorLutSize)
         Debug.Assert(attributes.GreenNumberOfEntries = paletteColorLutSize)
         Debug.Assert(attributes.BlueNumberOfEntries = paletteColorLutSize)

         Dim data As Integer() = ds.GetPaletteColorLutData(DicomPaletteColorLutType.Red)
         ' Do something with the data
      End If
      ds.Save(outputStream, DicomDataSetSaveFlags.None)
   End Using
   DicomEngine.Shutdown()
End Sub

Remarks

This method will delete all the elements defined under the "Palette Color Lookup Module", this includes:

Red Palette Color Lookup Table Descriptor (0028,1101),

Green Palette Color Lookup Table Descriptor (0028,1102),

Blue Palette Color Lookup Table Descriptor (0028,1103),

Palette Color Lookup Table UID (0028,1199),

Red Palette Color Lookup Table Data (0028,1201),

Green Palette Color Lookup Table Data (0028,1202),

Blue Palette Color Lookup Table Data (0028,1203),

Segmented Red Palette Color Lookup Table Data (0028,1221),

Segmented Green Palette Color Lookup Table Data (0028,1222),

Segmented Blue Palette Color Lookup Table Data (0028,1223)

Requirements

Target Platforms: Silverlight 3.0, Windows XP, Windows Server 2003 family, Windows Server 2008 family, Windows Vista, Windows 7, MAC OS/X (Intel Only)

See Also

Leadtools.Dicom requires a Medical toolkit server license and unlock key. For more information, refer to: Imaging Pro/Document/Medical Features