Source code for torchio.transforms.preprocessing.spatial.transpose

from ....data.subject import Subject
from ...spatial_transform import SpatialTransform
from .to_orientation import ToOrientation


[docs] class Transpose(SpatialTransform): """Swap the first and last spatial dimensions of the image. The spatial metadata is updated accordingly, so the world coordinates of all voxels in the input and output spaces match. Example: >>> import torchio as tio >>> image = tio.datasets.FPG().t1 >>> image ScalarImage(shape: (1, 256, 256, 176); spacing: (1.00, 1.00, 1.00); orientation: PIR+; path: "/home/fernando/.cache/torchio/fpg/t1.nii.gz") >>> transpose = tio.Transpose() >>> transposed = transpose(image) >>> transposed ScalarImage(shape: (1, 176, 256, 256); spacing: (1.00, 1.00, 1.00); orientation: RIP+; dtype: torch.IntTensor; memory: 44.0 MiB) """ def apply_transform(self, subject: Subject) -> Subject: for image in self.get_images(subject): old_orientation = image.orientation_str new_orientation = old_orientation[::-1] transform = ToOrientation(new_orientation) transposed = transform(image) image.set_data(transposed.data) image.affine = transposed.affine return subject def is_invertible(self): return True def inverse(self): return self