C#
C++/CLI
Java
public int[] GetPaletteColorLutData(
DicomPaletteColorLutType type
)
public int[] getPaletteColorLutData(DicomPaletteColorLutType type)
public:
array<int>^ GetPaletteColorLutData(
DicomPaletteColorLutType type
)
type
Type of the "Palette Color Lookup Table Data" to get.
Buffer that contains the "Palette Color Lookup Table Data".
This method will retrieve the data for the "Red", "Green" or "Blue" "Palette Color Lookup Table". If the data is segmented, the method will decode the data before copying it to the returned buffer.
using Leadtools;
using Leadtools.Dicom;
public void TestPaletteColorLut()
{
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 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(Path.Combine(LEAD_VARS.ImagesDir, "DICOM", "PLUT.dcm"), DicomDataSetSaveFlags.None);
}
DicomEngine.Shutdown();
}
static class LEAD_VARS
{
public const string ImagesDir = @"C:\LEADTOOLS22\Resources\Images";
}