import nilearn from nilearn import datasets from nilearn.input_data import NiftiMasker from nilearn.datasets import load_mni152_template from nilearn.image import resample_to_img from nilearn.image import load_img from nilearn.image import image ### Load MNI template. template = load_mni152_template() template_img = load_img(template) ### Fetch first subject's fMRI and ROI. haxby_dataset = datasets.fetch_haxby(subjects=(1,)) fmri_filename = haxby_dataset.func[0] mask_filename = haxby_dataset.mask_vt[0] ### Resample fMRI to MNI template. fmri_resampled = resample_to_img(fmri_filename, template) ### Apply mask. masker = NiftiMasker(mask_img=mask_filename, standardize=True) fmri_masked = masker.fit_transform(fmri_resampled) num_samples, num_voxels = np.shape(fmri_masked) ### Fetch binary mask data. binary_mask = masker.mask_img_.get_data() indices = np.where(binary_mask == 1) # convert into x,y,z triplets mask_coords = zip(indices[0], indices[1], indices[2]) mask_coords_mtx = np.reshape(mask_coords, (num_voxels, 3)) mask_coords_mtx_MNI = np.zeros_like(mask_coords_mtx) # convert from pixel indices to MNI coordinates for i, coords in enumerate(mask_coords_mtx): ix, iy, iz = coords x, y, z = nilearn.image.coord_transform(ix, iy, iz, template.affine) mask_coords_mtx_MNI[i] = [x, y, z] print "(x, y, z) = ({0}, {1}, {2})".format(x, y, z)