←Select platform

VoiLutCount Property

Summary
Gets the number of items under the VOI LUT Sequence (0028,3010).
Syntax
C#
VB
C++
public int VoiLutCount { get; } 
Public ReadOnly Property VoiLutCount As Integer 
public: 
property int VoiLutCount { 
   int get(); 
} 

Property Value

The number of items under the VOI LUT Sequence.

Remarks

This property gets the number of items under the VOI LUT Sequence (0028,3010). If this Sequence does not exist in the Data Set, the property specifies 0.

Example

This example will load a DICOM dataset, update its VOI LUT and then verify that it was updated properly.

C#
VB
using Leadtools; 
using Leadtools.Dicom; 
 
 
public void TestVoiLut() 
{ 
   string dicomFileName = Path.Combine(LEAD_VARS.ImagesDir, "DICOM", "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 VoiLutSize = 65536; 
 
      //Load DICOM File 
      ds.Load(dicomFileName, DicomDataSetLoadFlags.None); 
      ds.DeleteVoiLut(); 
 
      DicomVoiLutAttributes VoiLutAttributes = new DicomVoiLutAttributes(); 
      VoiLutAttributes.FirstStoredPixelValueMapped = 0; 
      VoiLutAttributes.EntryBits = 16; 
      VoiLutAttributes.NumberOfEntries = VoiLutSize; 
 
      int[] LutData = new int[VoiLutSize]; 
      for (int i = 0; i < VoiLutSize; i++) 
      { 
         LutData[i] = i; 
      } 
      ds.SetVoiLut(0, VoiLutAttributes, LutData); 
 
      DicomVoiLutAttributes attributes = ds.GetVoiLut(0); 
      if (attributes != null) 
      { 
         Debug.Assert(attributes.FirstStoredPixelValueMapped == 0); 
         Debug.Assert(attributes.EntryBits == 16); 
         Debug.Assert(attributes.NumberOfEntries == VoiLutSize); 
 
         int[] data = ds.GetVoiLutData(0); 
         // Do something with the data 
      } 
      ds.Save(Path.Combine(LEAD_VARS.ImagesDir, "DICOM", "VOILut.dcm"), DicomDataSetSaveFlags.None); 
 
   } 
   DicomEngine.Shutdown(); 
} 
 
static class LEAD_VARS 
{ 
   public const string ImagesDir = @"C:\LEADTOOLS21\Resources\Images"; 
} 
Imports Leadtools 
Imports Leadtools.Dicom 
 
Public Sub TestVoiLut() 
   Dim dicomFileName As String = Path.Combine(LEAD_VARS.ImagesDir, "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 VoiLutSize As Integer = 65536 
 
      'Load DICOM File 
      ds.Load(dicomFileName, DicomDataSetLoadFlags.None) 
      ds.DeleteVoiLut() 
 
      Dim VoiLutAttributes As DicomVoiLutAttributes = New DicomVoiLutAttributes() 
      VoiLutAttributes.FirstStoredPixelValueMapped = 0 
      VoiLutAttributes.EntryBits = 16 
      VoiLutAttributes.NumberOfEntries = VoiLutSize 
 
      Dim LutData As Integer() = New Integer(VoiLutSize - 1) {} 
      Dim i As Integer = 0 
      Do While i < VoiLutSize 
         LutData(i) = i 
         i += 1 
      Loop 
      ds.SetVoiLut(0, VoiLutAttributes, LutData) 
 
      Dim attributes As DicomVoiLutAttributes = ds.GetVoiLut(0) 
      If Not attributes Is Nothing Then 
         Debug.Assert(attributes.FirstStoredPixelValueMapped = 0) 
         Debug.Assert(attributes.EntryBits = 16) 
         Debug.Assert(attributes.NumberOfEntries = VoiLutSize) 
 
         Dim data As Integer() = ds.GetVoiLutData(0) 
         ' Do something with the data 
      End If 
      ds.Save(Path.Combine(LEAD_VARS.ImagesDir, "VOILut.dcm"), DicomDataSetSaveFlags.None) 
 
   End Using 
 
   DicomEngine.Shutdown() 
End Sub 
 
Public NotInheritable Class LEAD_VARS 
   Public Const ImagesDir As String = "C:\LEADTOOLS21\Resources\Images" 
End Class 
Requirements

Target Platforms

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

Leadtools.Dicom Assembly
Products | Support | Contact Us | Intellectual Property Notices
© 1991-2021 LEAD Technologies, Inc. All Rights Reserved.