I'm often asked how to go from voxel and mm coordinates using Python. This can be easily achieved using nibabel package with only few lines of code. The following tutorial is based on +Matthew Brett answer on the nipy mailing list . Going from voxel to mm coordinates import os import nibabel as nib Load the NIFTI file defining the space you are interested in. For the purpose of this tutorial we will use a test dataset shipped with nibabel. data_fname = os.path.join(os.path.dirname(nib.__file__), 'tests', 'data', 'example4d.nii.gz') img = nib.load(data_fname) Get the affine matrix and convert the coordinates. aff = img.get_affine() real_pt = nib.affines.apply_affine(aff, [22, 34, 12]) real_pt array([ 73.85510254, 27.1169095 , 29.79324198]) Going from mm to voxel coordinates Going the other direction is even easier. import numpy.linalg as npl nib.affines.apply_affine(npl.inv(aff), real_pt) array([ 22., 34., 12.])
Brains, behaviour, statistics, and random thoughts.