ImageEn, unit iexBitmaps

TIOParams.DICOM_Range

TIOParams.DICOM_Range


Declaration

property DICOM_Range: TIEDicomRange;


Description

Specifies how to handle the pixel visibility range when loading a DICOM image.
Either the pixel values are automatically scaled (image is modified) or the display values are adjusted (image is not modified).
Value Description
iedrAdjust Pixels values within the image are scaled to the appropriate visual range
iedrSetBlackWhite Pixels values are maintained, but WhiteValue and BlackValue are set to display the image correctly

Note:
If you are using a TIEMultiBitmap or TImageEnMView, you can use DuplicateCompressionInfo to propogate the parameter to all frames
iedrSetBlackWhite is not supported for saving! If iedrSetBlackWhite is specified, it will be saved as iedrAdjust. This means the pixel values of the saved image will be stretched to the range specified by WhiteValue and BlackValue (and the DICOM_RescaleSlope and DICOM_RescaleIntercept tags will be removed)
If you use iedrSetBlackWhite, you will need to reset the WhiteValue and BlackValue before loading the next image, i.e.

ImageEnView1.IEBitmap.BlackValue := 0;
ImageEnView1.IEBitmap.WhiteValue := 0;


Default: iedrAdjust (Specified by IOParamDefaults)


Loading Example

ImageEnView1.IO.NativePixelFormat := true;
ImageEnView1.IO.Params.DICOM_Range := iedrSetBlackWhite;
ImageEnView1.IO.LoadFromFile( 'D:\slice91.dcm' );
dcenter := ImageEnView1.IO.Params.DICOM_WindowCenterOffset + StrToFloat( edtLevel.Text );
dMin := dcenter - 0.5 - StrToFloat( edtWidth.Text ) - 1) / 2;
dMax := dcenter - 0.5 + StrToFloat( edtWidth.Text ) - 1) / 2;
ImageEnView1.IEBitmap.BlackValue := dMin;
ImageEnView1.IEBitmap.WhiteValue := dMax;
ImageEnView1.Update();


Saving Example

// Saving a DICOM that was loaded using iedrSetBlackWhite
// Note: This will happen automatically if you attempt to save with DICOM_Range=iedrSetBlackWhite
ImageEnView1.IEBitmap.StretchValues();
ImageEnView1.IO.Params.DICOM_Range := iedrAdjust;
ImageEnView1.IO.SaveToFileDICOM( SaveImageEnDialog1.FileName );