Hi Ajna and Jim
The phase scaling code assumes that pixels in the phase map that have the
maximum value and the minimum value are +pi and -pi respectively. It
doesn't matter whether this pixel is in the brain or in the noise - it
simply defines a scaling for the range of phase values to 2pi. We do it
this way because as far as I know there isn't a standard representation
for phase in radians in the DICOM image format.
I have found that looking at typical phase maps of the head, the maximum
and minimum phase values in the image are usually within 0.1% of the true
range. This means that distortions would also be estimated to within 0.1%.
If you know the scaling factor for your phase images, then it is possible
to use that instead - as Jim suggested. But one should be careful with
different scanner software versions etc that may change the scaling factor
in the DICOM images.
> I am using Philips 3T Achieva. Wondering if anyone knows how it scales
> its B0 maps?
I think that this may be one of the problems - the information isn't
typically available. If you convert the dicom phase image into nifti, then
read it into matlab, then you should be able to get an idea of the range
of values e.g.
V=spm_vol('converted_phase_image.nii')
vol=spm_read_vols(V)
mx=max(vol(:))
mn=min(vol(:))
The max and min (mx and mn) should give you an idea of the range of values
in your phase image. You can also check the scaling factor read by the
dicom converter, V.pinfo.
Best wishes
Chloe
>
> -Ajna Borogovac, Columbia University
>
>
>
> Jim Lee wrote:
>
>> Ajna,
>> I also use Chloe's great code, but modified that particular line
>> to be more absolute in its assignment of phase, based on the knowledge
>> that the phase difference maps on a Siemens Trio range in value from
>> -4095 to 4096, and represent -pi to +pi.
>>
>>
>> mn=min(vol(:));
>> mx=max(vol(:));
>> %svol=-pi+(vol-mn)*2*pi/(mx-mn);
>> % JNL. More accurate statement
>> svol = vol * pi / 4096;
>>
>> Jim Lee
>> University of Utah
>>
>>
>>
>>
>> Dear SPMers,
>> I am wondering if anyone knows what is the significance of scaling the
>> phase difference image to +pi to -pi range... The matlab code provided by
>> Chloe Hutton among the updates finds the
>> entire image max and min and uses this to scale the phase difference map
>> to this range. First problem I have with this code is that it does not
>> discriminate between brain and non-brain voxels in the image to create
>> the scale, and so the scaling ends up being based on noise outside the
>> brain and therefore in a way arbitrary... Second, I have conceptually
>> hard time understanding why the image would be scaled to have the max
>> and min set to +pi and -pi, rather than simply be somewhere within this
>> range. I.e. if max phase difference was for example lower than pi
>> radians, why are we setting this voxel to pi?
>>
>> All input would be greatly appreciated!
>>
>>
>> -Ajna Borogovac, Columbia University
>>
>>
>>
>
--
Dr Chloe Hutton
Wellcome Trust Centre for Neuroimaging
Institute of Neurology
University College London
12 Queen Square
London WC1N 3BG
United Kingdom
Tel. +44-20-7833-7478, (internal ext 4368)
Fax +44-20-7813-1420
[log in to unmask]
|