For Siemens data (phase comes in in range [-4096, +4094]), converting to radians through applying scaling only (i.e. not applying an offset) is what is necessary to produce a complex image from which computing the phase via std::arg (essentially atan2) replicates the original input phase image.
Shouldn't be consequential, but could nevertheless detect when the input phase image is close to symmetric about 0, and apply scaling to [-pi, pi) only, rather than scaling and shifting to [0, 2pi).
For Siemens data (phase comes in in range [-4096, +4094]), converting to radians through applying scaling only (i.e. not applying an offset) is what is necessary to produce a complex image from which computing the phase via
std::arg
(essentially atan2) replicates the original input phase image.Shouldn't be consequential, but could nevertheless detect when the input phase image is close to symmetric about 0, and apply scaling to [-pi, pi) only, rather than scaling and shifting to [0, 2pi).