Hi,

I'm just finishing up a Nifti2 read / write module for nibabel:
http://nipy.org/nibabel

To test it, I tried to read an image converted from Nifti1 using
Connectome Workbench.

The original image is here:

https://github.com/nipy/nibabel/raw/master/nibabel/tests/data/example4d.nii.gz

The converted image is here:

https://www.dropbox.com/s/yj6pw7umpz26im5/example4d_ni2.nii.gz

My reader fails when trying to read the Nifti extension from the
converted image.

Looking at the nifti1 standard;

http://www.nitrc.org/docman/view.php/26/64/nifti1.h

I think that nifti1 extensions look like this:

[348 bytes of header data] ending at 348
[4 bytes of 'extension'] ending at 352, content [1, 0, 0, 0] if there
are extensions
[8 bytes of 2 ints, esize, ecode] ending at 360 for first extension

Accordingly, here's a decimal hexdump of bytes 348 - 360 of the nifti1 file:

00001   00000   00032   00000   00006   00000   30821   25460

So [1, 0, 0, 0], [32, 6] meaning: yes there are extensions, first
extension is length 32, type 6.

By analogy, I think that a nifti2 header should have:

[540 bytes of header data] ending at 540
[4 bytes of 'extension'] ending at 544, content [1, 0, 0, 0] if there
are extensions
[8 bytes of 2 ints, esize, ecode] ending at 552 for first extension

Here's a decimal hexdump of bytes 540 - 556 of the converted nifti2 file:

00002   00000   00001   00000   00032   00000   00006   00000

It looks like the [extension] and [esize, ecode] are offset by 4
bytes, and start at 544.  Is that right?  Do you agree that they
should start at 540 instead?

Thanks a lot,

Matthew
_______________________________________________
HCP-Users mailing list
[email protected]
http://lists.humanconnectome.org/mailman/listinfo/hcp-users

Reply via email to