It seems that dcm2mnc does not make use of the private Philips dicom tags (2005,100D) (SI) and (2005,100E) (SS) for scaling the stored pixel data. Currently it seems to only use the public scaling tags (0028,1052) (RI) and (0028,1053) (RS), to output the 'display value' (DV) scaled from the stored pixel value (PV):
DV = PV ⋅ RS + RI
As described in this paper, for Philips, to obtain the true floating-point value, one needs to do instead:
FP = DV / (RS ⋅ SS) = (PV +RI / RS) / SS = (PV − SI) / SS
This is what is currently done in dcm2niix here. Chris Rorden also added an option to output the DV instead of FP, but expresses his dislike about this option here.
I noticed that dcm2mnc currently will use the (2005,140a) as an alternative rescale slope when (0028,1053) (RS) is 1; I am not sure where this fits in. Note that using the FP only matters in quantitative applications.
It seems that dcm2mnc does not make use of the private Philips dicom tags (2005,100D) (SI) and (2005,100E) (SS) for scaling the stored pixel data. Currently it seems to only use the public scaling tags (0028,1052) (RI) and (0028,1053) (RS), to output the 'display value' (DV) scaled from the stored pixel value (PV):
DV = PV ⋅ RS + RI
As described in this paper, for Philips, to obtain the true floating-point value, one needs to do instead:
FP = DV / (RS ⋅ SS) = (PV +RI / RS) / SS = (PV − SI) / SS
This is what is currently done in dcm2niix here. Chris Rorden also added an option to output the DV instead of FP, but expresses his dislike about this option here.
I noticed that dcm2mnc currently will use the (2005,140a) as an alternative rescale slope when (0028,1053) (RS) is 1; I am not sure where this fits in. Note that using the FP only matters in quantitative applications.