←Select platform

DeleteModalityLut(int,DicomSetImageFlags) Method

Summary
Deletes all the elements that describe the Modality LUT.
Syntax
C#
C++/CLI
Java
public void DeleteModalityLut( 
   int frameIndex, 
   DicomSetImageFlags flags 
) 
public void deleteModalityLut(int frameIndex, int dicomSetImageFlags) 
public: 
void DeleteModalityLut(  
   int frameIndex, 
   DicomSetImageFlags flags 
)  

Parameters

frameIndex
A zero-based index that identifies the frame number of in the dataset. If the dataset does not support Multi-frames, this parameter is ignored.

flags
determines how the modality LUT is deleted

Remarks

This method will delete all the elements defined under the "Modality LUT Module". If the DICOM dataset has a Multi-frame Functional Groups module, the Modality LUT information will be found in the Pixel Value Transformation Sequence. The Pixel Value Transformation Sequence will be under an item in either:

  • (5200,9229) Shared Functional Groups Sequence
  • (5200,9230) Per-frame Functional Groups Sequence

If the Pixel Value Transformation Sequence is found under the Per-frame Functional Groups Sequence, parameter uFrameIndex must be set to the correct frame number so that the proper Pixel Value Transformation Sequence is removed. If the Pixel Value Transformation Sequence is found under the Shared Functional Groups Sequence, parameter uFrameIndex is ignored. However, the DicomSetImageFlags.MfgOverwriteShared flag must be included to remove the Pixel Value Transformation Sequence. The specific elements deleted are shown below: (0028,9145) Pixel Value Transformation Sequence child elements

Tag Name
(0028,1052) Rescale Intercept
(0028,1053) Rescale Slope
(0028,1054) Rescale Type

Valid flags are DicomSetImageFlags.MfgOverwriteShared and DicomSetImageFlags.None. All other flags are ignored. For a detailed discussion on Multi-frame Functional Groups see the topic Multi-frame Functional Groups.

Example
C#
using Leadtools; 
using Leadtools.Dicom; 
 
 
public void TestSetModalityLut() 
{ 
   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()) 
   { 
      //Load DICOM File 
      ds.Load(dicomFileName, DicomDataSetLoadFlags.None); 
      DicomModalityLutAttributes modalityLutAttributes = new DicomModalityLutAttributes(); 
      //No Modality LUT Sequence (0028,3000)  
      modalityLutAttributes.IsModalityLutSequence = false; 
      //Yes there is a rescale slope and intercept 
      modalityLutAttributes.IsRescaleSlopeIntercept = true; 
      modalityLutAttributes.RescaleIntercept = -128.0; 
      modalityLutAttributes.RescaleSlope = 1.0; 
      modalityLutAttributes.RescaleType = "UNSPECIFIED"; 
      // Delete the existing modality LUT,  
      // although we don't have to !  
      ds.DeleteModalityLut(); 
      //Set rescale slope and intercept 
      ds.SetModalityLut(modalityLutAttributes, null); 
      ds.Save(Path.Combine(LEAD_VARS.ImagesDir, "DICOM", "MLUT.dcm"), DicomDataSetSaveFlags.None); 
   } 
   DicomEngine.Shutdown(); 
} 
 
static class LEAD_VARS 
{ 
   public const string ImagesDir = @"C:\LEADTOOLS23\Resources\Images"; 
} 
Requirements

Target Platforms

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

Leadtools.Dicom Assembly

Products | Support | Contact Us | Intellectual Property Notices
© 1991-2023 LEAD Technologies, Inc. All Rights Reserved.