Return image, remove axes length 1 at end of image shape
For example, an image may have shape (10,20,30,1,1). In this case squeeze will result in an image with shape (10,20,30). See doctests for further description of behavior.
Parameters : | img : SpatialImage |
---|---|
Returns : | squeezed_img : SpatialImage
|
Examples
>>> import nibabel as nf
>>> shape = (10,20,30,1,1)
>>> data = np.arange(np.prod(shape)).reshape(shape)
>>> affine = np.eye(4)
>>> img = nf.Nifti1Image(data, affine)
>>> img.shape
(10, 20, 30, 1, 1)
>>> img2 = squeeze_image(img)
>>> img2.shape
(10, 20, 30)
If the data are 3D then last dimensions of 1 are ignored
>>> shape = (10,1,1)
>>> data = np.arange(np.prod(shape)).reshape(shape)
>>> img = nf.ni1.Nifti1Image(data, affine)
>>> img.shape
(10, 1, 1)
>>> img2 = squeeze_image(img)
>>> img2.shape
(10, 1, 1)
Only final dimensions of 1 are squeezed
>>> shape = (1, 1, 5, 1, 2, 1, 1)
>>> data = data.reshape(shape)
>>> img = nf.ni1.Nifti1Image(data, affine)
>>> img.shape
(1, 1, 5, 1, 2, 1, 1)
>>> img2 = squeeze_image(img)
>>> img2.shape
(1, 1, 5, 1, 2)