[Insight-developers] question regarding nifti IO

kent williams norman-k-williams at uiowa.edu
Wed Apr 29 14:43:30 EDT 2009


You¹re absolutely correct ‹ if you happen to look in the NIfTI header (in
ITK, it¹s Insight/Utilities/nifti/niftilib/nifti1.h)  you will see that the
image dimensions are stored as an array of shorts.

                                 /* NIFTI-1 usage         */              /*
ANALYZE 7.5 field(s) */
 short dim[8];        /*!< Data array dimensions.*/  /* short dim[8];
*/

This is not a bug in ITK, this is a basic limitation of the file format.  So
the maximum of any dimension is going to be 32767.

In other words, if you really want to have an image with any dimension >
32767, you will have to use a different image format.  Which rather begs the
question of why you would need to save such a data object to a standard
image format at all, but I¹m sure you have your reasons.


On 4/28/09 8:03 PM, "Nicholas Tustison" <ntustison at gmail.com> wrote:

> Developers,
> 
> My colleague, Brian Avants, asked that I post the following question to the
> Insight Developers' list.  Essentially, as he points out below, and I've
> reproduced using my own code, it seems as though 1-D images can't be created
> in nifti format where the size exceeds ~30,000 pixels but can be created using
> the mhd format.  Is this behavior known and is there a particular reason for
> it?
> 
> Thanks,
> Nick Tustison
> 
> Begin forwarded message:
> 
>> From: brian avants <stnava at gmail.com>
>> Date: April 28, 2009 1:48:58 PM EDT
>> To: Nicholas Tustison <ntustison at gmail.com>
>> Subject: bug nifti writer?
>> 
>>  
>> 
>>  
>> is this a known/unknown bug?
>> 
>> only appears to happen if #voxels exceeds about 30,000.
>> suggesting datatype problem.
>> 
>> see below: 
>> 
>> # first, just print the mhd header
>>  
>> $ PrintHeader zero2.mhd
>>  Spacing [1, 1]
>>  Origin [0, 0]
>>  Direction 
>> 1 0
>> 0 1
>>  Size 
>> [1, 65536]
>> 
>> # convert to nifti
>>  $ MultiplyImages 2 zero2.mhd 1 zero2.nii
>> 
>> # print nifti header
>> $ PrintHeader zero2.nii
>>  Spacing [1, 1]
>>  Origin [0, 0]
>>  Direction 
>> 1 0
>>  0 1
>> 
>>  Size 
>> [1, 1]
>> 
>> # size is wrong in terms of the header info
>> # but not in terms of the raw data ...
>> $ ls -l zero2.nii
>> -rw-r--r--  1 user  user  262496 Apr 28 13:37 zero2.nii
>>  
>> $ ls -l zero2.raw
>> -rw-r--r--  1 user  user  262144 Mar 25  2008 zero2.raw
>> 
>> # if i convert zero2.nii to mhd the size is wrong
>> ls -l zero3.raw 
>> -rw-r--r--  1   user  user  4 Apr 28 13:42 zero3.raw
>>  
>> 
>> 
> 
> 
> 
> _______________________________________________
> Powered by www.kitware.com
> 
> Visit other Kitware open-source projects at
> http://www.kitware.com/opensource/opensource.html
> 
> Please keep messages on-topic and check the ITK FAQ at:
> http://www.itk.org/Wiki/ITK_FAQ
> 
> Follow this link to subscribe/unsubscribe:
> http://www.itk.org/mailman/listinfo/insight-developers

-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://www.itk.org/mailman/private/insight-developers/attachments/20090429/abe8ede8/attachment.htm>


More information about the Insight-developers mailing list