fsl.utils.image.resample
This module defines the resample() function, which can be used
to resample an Image object to a different resolution.
The resampleToPixdims() and resampleToReference() functions
are convenience wrappers around resample().
The applySmoothing() function is a sub-function of resample().
- fsl.utils.image.resample.resampleToPixdims(image, newPixdims, **kwargs)[source]
Resample
imageso that it has the specified voxel dimensions.This is a wrapper around
resample()- refer to its documenttion for details on the other arguments and the return values.- Parameters:
image –
Imageto resamplepixdims – New voxel dimensions to resample
imageto.
- fsl.utils.image.resample.resampleToReference(image, reference, matrix=None, **kwargs)[source]
Resample
imageinto the space of thereference.This is a wrapper around
resample()- refer to its documenttion for details on the other arguments and the return values.When resampling to a reference image, resampling will only be applied along the spatial (first three) dimensions.
- fsl.utils.image.resample.resample(image, newShape, sliceobj=None, dtype=None, order=1, smooth=True, origin=None, matrix=None, mode=None, cval=0)[source]
Returns a copy of the data in the
image, resampled to the specifiednewShape.The space that the image is resampled into can be defined in one of the following ways, in decreasing order of precedence:
If a
matrixis provided, it is applied to the voxel coordinates when retrieving values from theimageOtherwise the image is simply scaled according to the ratio calculated by
image.shape / newShape. In this case theoriginargument may be used to adjust the alignemnt of the original and resampled voxel grids.
See the
scipy.ndimage.affine_transformfunction for more details, particularly on theorder,matrix,modeandcvalarguments.Note
If a custom resampling
matrixis specified, the adjusted voxel-to-world afffine cannot be calculated by this function, soNonewill be returned instead.- Parameters:
image –
Imageobject to resamplenewShape – Desired shape. May containg floating point values, in which case the resampled image will have shape
round(newShape), but the voxel sizes will have scalesself.shape / newShape(unlessmatrixis specified).sliceobj – Slice into this
Image. IfNone, the whole image is resampled, and it is assumed that it has the same number of dimensions asnewShape. AValueErroris raised if this is not the case.dtype –
numpydata type of the resampled data. IfNone, thedtype()of thisImageis used.order – Spline interpolation order, passed through to the
scipy.ndimage.affine_transformfunction -0corresponds to nearest neighbour interpolation,1(the default) to linear interpolation, and3to cubic interpolation.smooth – If
True(the default), the data is smoothed before being resampled, but only along axes which are being down-sampled (i.e. wherenewShape[i] < self.shape[i]).origin –
'centre'(the default) or'corner'.'centre'resamples the image such that the centre of the corner voxels of this image and the resampled data are aligned.'corner'resamples the image such that the corner of the corner voxels are aligned (and therefore the voxel grids are aligned). Ignored ifoffsetormatrixis specified.matrix – Arbitrary affine transformation matrix to apply to the voxel coordinates of
imagewhen resampling.mode – How to handle regions which are outside of the image FOV. Defaults to ‘’nearest’`.
cval – Constant value to use when
mode='constant'.
- Returns:
A tuple containing:
A
numpyarray of shapenewShape, containing an interpolated copy of the data in thisImage.A
numpyarray of shape(4, 4), containing the adjusted voxel-to-world transformation for the spatial dimensions of the resampled data, orNoneif amatrixwas provided.
- fsl.utils.image.resample.applySmoothing(data, matrix, newShape)[source]
Called by the
resample()function.If interpolating and smoothing, we apply a gaussian filter along axes with a resampling ratio greater than 1.1. We do this so that interpolation has an effect when down-sampling to a resolution where the voxel centres are aligned (as otherwise any interpolation regime will be equivalent to nearest neighbour). This more-or-less mimics the behaviour of FLIRT.
See the
scipy.ndimage.gaussian_filterfunction for more details.- Parameters:
data – Data to be smoothed.
matrix – Affine matrix to be used during resampling. The voxel scaling factors are extracted from this.
newShape – Shape the data is to be resampled into.
- Returns:
A smoothed copy of
data.