public void DeleteWindow(
int frameIndex,
DicomSetImageFlags flags
)
public void deleteWindow(int frameIndex, int dicomSetImageFlags)
public:
void DeleteWindow(
int frameIndex,
DicomSetImageFlags flags
)
frameIndex
A zero-based index that identifies the frame number in the dataset. If the dataset does not support Multi-frames, this parameter is ignored.
flags
determines how the VOI LUT is deleted
This method will delete the following elements:
Window Center (0028,1050)
Window Width (0028,1051)
Window Center and Width Explanation (0028,1055)
If the DICOM dataset has a Multi-frame Functional Groups module, the Window information will be found in the Frame VOI LUT Sequence. The Frame VOI LUT Sequencewill be under an item in either:
If the Frame VOI LUT Sequence is found under the Per-frame Functional Groups Sequence, parameter uFrameIndex must be set to the correct frame number so that the proper Frame VOI LUT Sequence is removed. If the Frame VOI LUT Sequence is found under the Shared Functional Groups Sequence, parameter uFrameIndex is ignored. However, the DicomSetImageFlags.MfgOverwriteShared flag must be included to remove the Frame VOI LUT Sequence. The specific elements deleted are shown below: (0028,9132) Frame VOI LUT Sequence Child Elements
Tag | Name |
(0028,1050) | Window Center |
(0028,1051) | Window Width |
(0028,1055) | Window Center & Width Explanation |
Valid flags are DicomSetImageFlags.None and DicomSetImageFlags.MfgOverwriteShared. 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 TestWCWW()
{
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);
int bitsStored = 16;
bool add = false;//Add a new window or replace the existing one(s)
int windowIndex = 0;
DicomWindowAttributes windowAttributes = new DicomWindowAttributes();
if (ds.GetWindowCount(0) > 0)
{
DicomWindowAttributes attributes = ds.GetWindow(0);
if (attributes != null)
{
windowAttributes.WindowCenter = attributes.WindowCenter / 2;
windowAttributes.WindowWidth = attributes.WindowWidth / 2;
}
}
else
{
windowAttributes.WindowCenter = 1 << (bitsStored - 1);
windowAttributes.WindowWidth = 1 << bitsStored;
}
windowIndex = ds.GetWindowCount(0);
if (!add)
{
// Delete the existing window(s)
ds.DeleteWindow();
windowIndex = 0;
}
// Add the new window
ds.SetWindow(windowIndex, windowAttributes);
ds.Save(Path.Combine(LEAD_VARS.ImagesDir, "DICOM", "WCWW.dcm"), DicomDataSetSaveFlags.None);
}
DicomEngine.Shutdown();
}
static class LEAD_VARS
{
public const string ImagesDir = @"C:\LEADTOOLS22\Resources\Images";
}