public void DeleteModalityLut(
int frameIndex,
DicomSetImageFlags flags
)
public void deleteModalityLut(int frameIndex, int dicomSetImageFlags)
public:
void DeleteModalityLut(
int frameIndex,
DicomSetImageFlags flags
)
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
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:
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.
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";
}
Help Collections
Raster .NET | C API | C++ Class Library | HTML5 JavaScript
Document .NET | C API | C++ Class Library | HTML5 JavaScript
Medical .NET | C API | C++ Class Library | HTML5 JavaScript
Medical Web Viewer .NET
Multimedia
Direct Show .NET | C API | Filters
Media Foundation .NET | C API | Transforms
Supported Platforms
.NET, Java, Android, and iOS/macOS Assemblies
Imaging, Medical, and Document
C API/C++ Class Libraries
Imaging, Medical, and Document
HTML5 JavaScript Libraries
Imaging, Medical, and Document