That is what I found strange as well!
As I said earlier, I know how segmented.nii is written, I know that
there are only 0 and 1 voxels in that image. I opened it in MriCro
though, and all the in-mask voxels show value 1 / .003260 (I guess that
means the vvalue stored in the voxel array is 1, but in some way this
represents 0.003260).
The header is cloned from the template. I know that is not the
`cleanest' way to go about. That's probably why the range etc are not
set to 0..1.
Fact is that before avwmaths++ I see the shape of the mask, and voxels
that are stored as 1. After avwmaths they are gone, so more happens than
just a type conversion. Probably header information is used?
Where should I send the data, if you want to have a look?
Thanks
AM
Christian Beckmann wrote:
> 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
>
|