Philips data can have its own special scale factor slope and intercept. dcm2niix has an option for converting Philips slope and intercept scaling that Dimon and to3D do not, so that may be responsible for the difference. I think this is through the dcm2niix -p option, but I’m not really sure. For most EPI or structural data, this doesn’t make much difference, but it is important when dealing with some other image acquisition protocols like DCE-MRI where every TR gets scaled differently.
I got this information a number of years ago from the interoperability manager at Philips regarding scale factors :
[size=medium]There are 2 subsequent scaling processes, each having their own scaling parameters.
Internal floating point (FP) → SCALING → Stored Values (SV) → RE-SCALING and windowing → display values (DP)
Currently there are 4 parameters that play a role in scaling:
SI: Scale Intercept (2005,100D) scale shift mostly 0, except e.g. for Real Images, value is stored in a private DICOM field
SS: Scale Slope (2005,100E) the factor that creates Stored Values (SV) in the range of 0-4096, is private DICOM field
RI: Rescale Intercept (0028,1052) the scale shift, mostly 0.
RS: Rescale Slope (0028,1053) the factor that creates display values in the required unit. for non quantitative images this is unit-less.
RI and RS are influenced by the Control Reconstruction Parameters: fixed scale factor type and fixed scale factor (see below)
and by the service setting: “Combine Rescaling” (when Combine Rescaling = YES, RI and RS are forced to 0 and 1 resp.)
Of course the window settings are adapted accordingly, to get a familiar display on the workstation = equal to that of the console display.
WL: Window Center (Level) (0028,1050)
WW: Window Width (0028,1051)
For your reference: these values may be overruled by those in a Presentation State (GSPS) object, but for quantification this is not relevant.
We have the following MR values:
FP internal Floating Point MR values
SV Stored Values, the DICOM Pixel Data (7FE0,0010)
DV Display values: this is the value as calculated by ROI statistics on the MR console
When we restrict ourselves here to Modulus (Magnitude) images, then the SCALE Intercept is always : 0. This also holds for the Rescale Intercept
The following relations apply (sorry John, your maths are different from ours, but for RI = 0, the result is the same).
eq 1: SV = FP * SS + SI (from internal floats to Stored Values)
eq 2: DV = SV * RS +RI (from Stored Values to Display Values)
If you can take the SV values directly from the DICOM file (or the REC file or the NII file (values appear to be equal)) then from eq 1:
FP = (SV-SI) / SS
Otherwise you will need to process the DV values with all 4 parameters. Substituting SV in eq 2 results in :
FP = (DV-RI- (SIRS))/ (RSSS)
SS and SI are defined in the reconstruction process, and are depending on the technique and the noise measurement in the preparation phase.
The values may be kept at a fixed level over scans, when the control recon parameter “fixed scale factor type” is set to “DOTS” or to “Abs MR signal”.
This will yield displayed values that are directly proportional to the MR signal and to the so called floating point scale of the images within the reconstruction software.
The proportionality factor can be set using the control recon parameter “fixed scale factor”.
The setting of this parameter is arbitrary, but it should be kept constant over scans that should show amplitude consistency.[/size]
These are some relevant links about this topic with suggestions:
https://www.nitrc.org/forum/forum.php?thread_id=7322&forum_id=4703
https://www.nitrc.org/forum/message.php?msg_id=20990
https://www.jiscmail.ac.uk/cgi-bin/webadmin?A2=MRICRO;72607100.1512
https://afni.nimh.nih.gov/afni/community/board/read.php?1,120877,121168#msg-121168
https://afni.nimh.nih.gov/afni/community/board/read.php?1,142584,142594#msg-142594