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)
True
>>> img2 = squeeze_image(img)
>>> img2.shape == (10, 20, 30)
True
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)
True
>>> img2 = squeeze_image(img)
>>> img2.shape == (10, 1, 1)
True
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)
True
>>> img2 = squeeze_image(img)
>>> img2.shape == (1, 1, 5, 1, 2)
True