ApplyGlobalModalityLUT¶
-
MacroModule
¶ author Jan-Martin Kuhnigk
package FMEstable/ReleaseMeVis
definition ApplyGlobalModalityLUT.def see also DicomRescale
keywords normalization
,CT
,DICOM
,rescal
,hounsfield
,units
,range
,Siemens
,Toshiba
,GE
,Philips
,value
Purpose¶
The module allows for normalizing DICOM data containing either a single frame-unspecific (i.e. “shared” or “global”) or multiple frame-specific RescaleIntercept or RescaleSlope values to a single, frame-unspecific, user-defined intercept, slope, and data type.
For CT data, intercept and slope define the transformation between intensity values (IV) and Hounsfield Units (HU): HU = IV * slope + intercept For example, this is very useful in order to normalize CT data from different vendors (Siemens, Philips, GE, Toshiba), who mostly use their specific intercept / slope / data type values, on the fly without extensive computational cost.
It can also be used to scale into another datatype for more memory efficient processing and still have the correct correspondence of intensity values and external scale.
Usage¶
Connect a DICOM image to the input, and select appropriate rescaling parameters.
E.g., to rescale to Siemens standard, use Intercept -1024, slope 1, and data type UInt16. If Int16 is selected instead, values below -1024 HU which occur in most Philips and Toshiba datasets are preserved and result in intensity values below 0 in the output image.
Recommended normalization values for image processing are intercept = 0, slope = 1 so that there is no need to translate between voxel values and user values (e.g. HU).
Details¶
Normalizing frame-specific to shared tags is a preprocessing step that only kicks in whenever at least two different frame-specifc tag values are detected. As the frame-specific values are not removed
Input Fields¶
Output Fields¶
Parameter Fields¶
Field Index¶
[] : Trigger |
Input Intercept : String |
Output Minimum : Double |
Clamp values above : Bool |
Input Maximum : Double |
Set as output maximum : Bool |
Clamp values below : Bool |
Input Minimum : Double |
Set as output minimum : Bool |
Clear : Trigger |
Input Rescale Type : String |
Status Code : Enum |
doNotClearOnFailedUpdate : Bool |
Input Slope : String |
Status Message : String |
Global Intercept : Double |
Lower Bound : Double |
Update : Trigger |
Global Slope : Double |
On Input Change Behavior : Enum |
Upper Bound : Double |
Has Valid Output : Bool |
Output Data Type : String |
Voxel Data Type : Enum |
Input Data Type : String |
Output Maximum : Double |
Visible Fields¶
On Input Change Behavior¶
-
name:
onInputChangeBehavior
, type:
Enum
, default:
Clear
, deprecated name:
autoUpdateMode,shouldAutoUpdate,shouldUpdateAutomatically
¶ Declares how the module should react if a value of an input field changes.
Values:
Title | Name | Deprecated Name |
---|---|---|
Update | Update | AutoUpdate,TRUE |
Clear | Clear | AutoClear,FALSE |
[]¶
-
name:
updateDone
, type:
Trigger
, persistent:
no
¶ Notifies that an update was performed (Check status interface fields to identify success or failure).
Has Valid Output¶
-
name:
hasValidOutput
, type:
Bool
, persistent:
no
, deprecated name:
outputValid,valid
¶ Indicates validity of output field values (success of computation).
Status Code¶
-
name:
statusCode
, type:
Enum
, persistent:
no
¶ Reflects module’s status (successful or failed computations) as one of some predefined enumeration values.
Values:
Title | Name |
---|---|
Ok | Ok |
Invalid input object | Invalid input object |
Invalid input parameter | Invalid input parameter |
Internal error | Internal error |
Status Message¶
-
name:
statusMessage
, type:
String
, persistent:
no
¶ Gives additional, detailed information about status code as human-readable message.
Global Intercept¶
-
name:
inOutputIntercept
, type:
Double
, default:
0
, deprecated name:
outputIntercept
¶ Sets the user defined intercept value for the output.
Global Slope¶
-
name:
inOutputSlope
, type:
Double
, default:
1
, deprecated name:
outputSlope
¶ Sets the user defined slope value.
Voxel Data Type¶
-
name:
inOutputDataTypeSelection
, type:
Enum
, default:
Int16
, deprecated name:
inOutputTypeSelect,typeSelect
¶ Defines the data type for the output image.
Values:
Title | Name |
---|---|
Automatic | Automatic |
Input Data Type | Input Data Type |
UInt8 | UInt8 |
Int8 | Int8 |
UInt16 | UInt16 |
Int16 | Int16 |
UInt32 | UInt32 |
Int32 | Int32 |
Float | Float |
Double | Double |
Clamp values below¶
-
name:
inClampToUserMin
, type:
Bool
, default:
FALSE
, deprecated name:
inUseUserMin,useUserMin
¶ If checked, the data is clamped to the user-defined upper bound
Lower Bound
.
Lower Bound¶
-
name:
inUserMin
, type:
Double
, default:
-2048
, deprecated name:
userMin
¶ Can be used for clamping and/or setting a user defined minimum image value. See also
Clamp values below
andSet as output minimum
Set as output minimum¶
-
name:
inUseUserMinAsOutputMin
, type:
Bool
, default:
FALSE
, deprecated name:
useUserMinAsOutputMin
¶ If checked, the user minimum
Lower Bound
is set as output minimum value.
Clamp values above¶
-
name:
inClampToUserMax
, type:
Bool
, default:
FALSE
, deprecated name:
inUseUserMax,useUserMax
¶ If checked, the data is clamped to the user-defined upper bound
Upper Bound
.
Upper Bound¶
-
name:
inUserMax
, type:
Double
, default:
6143
, deprecated name:
userMax
¶ Can be used for clamping and/or setting a user defined maximum image value. See also
Clamp values above
andSet as output maximum
Set as output maximum¶
-
name:
inUseUserMaxAsOutputMax
, type:
Bool
, default:
FALSE
, deprecated name:
useUserMaxAsOutputMax
¶ If checked, useUserMax is automatically enabled and the user maximum is applied as output maximum.
Input Intercept¶
-
name:
outInputIntercept
, type:
String
, persistent:
no
, deprecated name:
inputIntercept
¶ RescaleIntercept of input image. Will show the value for shared RescaleIntercept, and (frame specific) for frame-specific values.
Input Slope¶
-
name:
outInputSlope
, type:
String
, persistent:
no
, deprecated name:
inputSlope
¶ RescaleSlope of input image. Will show the value for shared RescaleSlope, and (frame specific) for frame-specific values.
Input Data Type¶
-
name:
outInputDataType
, type:
String
, persistent:
no
, deprecated name:
inputType,outInputType
¶ Data type of input image.
Input Rescale Type¶
-
name:
outInputRescaleType
, type:
String
, persistent:
no
, deprecated name:
inputRescaleType
¶ Displays the value of the DICOM tag “RescaleType” (0028,1054) if present, or “n/a” otherwise. Not used by the module, just displayed for user information.
Input Minimum¶
-
name:
outInputMin
, type:
Double
, persistent:
no
, deprecated name:
inputMin
¶ Minimum voxel value of input image.
Input Maximum¶
-
name:
outInputMax
, type:
Double
, persistent:
no
, deprecated name:
inputMax
¶ Maximum voxel value of input image
Output Minimum¶
-
name:
outMin
, type:
Double
, persistent:
no
, deprecated name:
outputMin
¶ Minimum voxel value of output image