Julia module for reading/writing NIfTI MRI files
63 Stars
Updated Last
1 Year Ago
Started In
January 2013


Build Status


To read a NIfTI file:

using NIfTI
ni = niread("my.nii")
ni = niread("my.nii.gz") # gzipped NIfTI files are detected automatically

The header is in nii.header; NIfTI extensions are in nii.extensions; the raw volume is in nii.raw.

To mmap the NIfTI file:

ni = niread("my.nii", mmap=true)

To get the TR and voxel size:

vsize = voxel_size(ni.header)    # In mm
tr = time_step(ni.header)        # In ms

To get the value of the volume along a given dimension:

d = vox(ni, x, y, z, t)       # Scaled by slope and intercept given in header, zero-based indexes
d = ni[x, y, z, t]            # Scaled by slope and intercept given in header, one-based indexes
d = ni.raw[x, y, z, t]        # Unscaled, one-based indexes

Colons works everywhere, even with vox

To write a volume:

niwrite("my.nii", ni)

It is also possible to construct a new volume from scratch; see the NIVolume constructor in the source for documentation.