questions > difference between dcm2nii dcm2niix
Showing 1-2 of 2 posts
Display:
Results per page:
Jun 8, 2018  06:06 AM | peggy luo
difference between dcm2nii dcm2niix
Dear all,


When I test the  same image using different tools, I found that the image histograms are very different between dcm2nii dcm2niix. The intensity range of dcm2nii is 0 -3748, while dcm2niix is 0-242305.

I would like to ask how this difference comes from? Can I make the intensity range produced by dcm2niix same as the previous dcm2nii version?


Thanks a lot.

Peggy
Jun 8, 2018  11:06 AM | Chris Rorden
RE: difference between dcm2nii dcm2niix
Is your data from a Philips MRI system. If so, I think you will see that dcm2niix notes that your image has more than one value for the intercept and scaling applied to your data. Specifically, you can choose between the Display Value (D) and Precise (P, FP, RWV) scaling. As Matthew Clemence notes: DV means that if you draw an ROI on the console and you use the DV values you will get the same answer - which of cousre is why the RS and Ri values are the same as the RWV scaling, We want people to measure the correct value on the scanner.

Note that the raw data in your images is identical, simply different scaling can be applied. Therefore, this choice has no influence on most MRI modalities where the image intensity is relative and based on shimming/FFT scaling/etc. However, for some images (e.g. Field Map in Hz) this might be meaningful. Unfortunately, some groups have pipelines that prefer D value and others prefer the P value. Therefore, dcm2niix allows you to request the P ('dcm2niix -p y ~/myDir') or D ('dcm2niix -p y ~/myDir') value. For more details see PMC3998685.

This explains the details you see when you convert some Philips images with dcm2niix, as well as the values stored in the BIDS JSON header (that lets you choose between P and D value post-conversion):


Philips Precise RS:RI:SS = 1.24105:0:0.0042949 (see PMC3998685)
R = raw value, P = precise value, D = displayed value
RS = rescale slope, RI = rescale intercept, SS = scale slope
D = R * RS + RI , P = D/(RS * SS)
D scl_slope:scl_inter = 1.24105:0
P scl_slope:scl_inter = 232.835:0
Using P values ('-p n ' for D values)