Hi,
Your segmented.nii does not appear to be a binary image at all, the
robust range is 0 - 0.003260. How did you deal with the header
information in the new image then? Did you simply clone the header
from the epi template? This also already appears to be inconsistent
wrt to it's range and the data type. ? Maybe it's indeed worthwhile
to upload the data. What happens when you load the original epp.nii
and segmented.nii into fslview - what values are reporte? The
behaviour of avwstats++ is as I expect it to be - all values are cast
to 0.
cheers
christian
On 25 May 2007, at 23:16, Alle Meije Wink wrote:
> Hi Christian,
>
> Hmm, well I did the same now with the diagnostics on our EPI
> template (which is basically the MNI template, but thresholded for
> air and with the eyes removed). That is a 16-bit image.
>
> ================================================
> $ export FSLOUTPUTTYPE=NIFTI
> $ avwhd++ EPI.nii | head -4
> filename EPI.nii
>
> sizeof_hdr 348
> data_type INT16
> $ avwstats++ EPI.nii -r -R
> 0.000000 0.547875 0.000000 0.831373
> $ segmentIm EPI.nii
> segmented image segmented.nii written (2 regions [1 clusters])
> $ avwhd++ segmented.nii | head -4
> filename segmented.nii
>
> sizeof_hdr 348
> data_type INT16
> $ avwstats++ segmented.nii -r -R
> 0.000000 0.003260 0.000000 0.003260
> $ avwmaths++ segmented.nii segmentedBYTE.nii -odt char
> $ avwhd++ segmentedBYTE.nii.gz |head -4
> filename segmentedBYTE.nii
>
> sizeof_hdr 348
> data_type UINT8
> $ avwstats++ segmentedBYTE.nii -r -R
> 0.000000 0.000000 0.000000 0.000000
> ================================================
>
> So first the diagnostics on the template. It's a 16-bit image. Its
> voxel values are just the same as the 8-bit MNI template, so not
> sure what the output of avwstats means.
> After that, segmenting the EPI template. 2 regions: the background
> and the brain. The diagnostics: still 16-bit data type, voxel
> values are 0 and 1 (I wrote the program that wrote the voxels),
> again not sure what avwstats output means.
> After that, cast the segmented image to char. The header shows that
> the data type has been changed. The stats show zero all...
>
> There's more happening there than just a type cast!!!!
>
> How can a integer-valued image have these float-valued stats?
>
> Would it help if I send you the images involved?
>
> I'm running
> Linux 3 2.6.10-1.771_FC2smp #1 SMP Mon Mar 28 01:10:51 EST 2005
> i686 i686 i386 GNU/Linux
>
> And the FSL I'm using for this is a compiled version of FSL-3.3.8
>
> Thanks,
> Alle Meije
>
> Christian Beckmann <[log in to unmask]> wrote: Hi,
>
> I can't replicate this on my laptop (mac os x). Instead, it works as
> expected - if I create a binary mask and then do the type conversion
> I still have the mask intact. AFAIK avwmaths does not use division
> but simply casts the values to the required type in the ususal c++
> way.
>
> Here is what I did:
> i) load in avg152 in fslview and create a binary mask, save this to
>
> [Josi:~] avwhd avg152T1_brain-mask.nii.gz
> filename avg152T1_brain-mask.nii.gz
> sizeof_hdr 348
> data_type INT16
> ...
>
> This is a binary file:
>
> [Josi:~] avwstats avg152T1_brain-mask.nii.gz -r -R
> 0.000000 1.000000 0.000000 1.000000
>
> When using avwmaths++ to convert the file
>
> [Josi:~] avwmaths++ avg152T1_brain-mask.nii.gz test -odt char
>
> it remains a binary mask
> [Josi:~] avwstats test -r -R
> 0.000000 1.000000 0.000000 1.000000
>
> and has the desired type
>
> [Josi:~] avwhd test
> filename test.nii.gz
> sizeof_hdr 348
> data_type UINT8
> ...
>
> I guess we need to investigate - what platform are you running this
> on and did you compile yourself?
> cheers
> christian
>
>
> Yahoo! Mail is the world's favourite email. Don't settle for less,
> sign up for your free account today.
____
Christian F. Beckmann
University Research Lecturer
Oxford University Centre for Functional MRI of the Brain (FMRIB)
John Radcliffe Hospital, Headington, Oxford OX3 9DU, UK.
[log in to unmask] http://www.fmrib.ox.ac.uk/~beckmann
tel: +44 1865 222551 fax: +44 1865 222717
|