MCPcopy Create free account
hub / github.com/Project-MONAI/MONAI / inverse

Method inverse

monai/transforms/spatial/array.py:682–703  ·  view source on GitHub ↗
(self, data: torch.Tensor)

Source from the content-addressed store, hash-verified

680 return orientation(data_array, affine_np, spatial_ornt, lazy=lazy_, transform_info=self.get_transform_info())
681
682 def inverse(self, data: torch.Tensor) -> torch.Tensor:
683 transform = self.pop_transform(data)
684 # Create inverse transform
685 orig_affine = transform[TraceKeys.EXTRA_INFO]["original_affine"]
686 labels = self.labels
687
688 # Set up "labels" such that LPS tensors are handled correctly by default
689 if (
690 isinstance(data, MetaTensor)
691 and self.labels is None
692 and "space" in data.meta
693 and SpaceKeys(data.meta["space"]) == SpaceKeys.LPS
694 ):
695 labels = (("R", "L"), ("A", "P"), ("I", "S")) # value for LPS
696
697 orig_axcodes = nib.orientations.aff2axcodes(orig_affine, labels=labels)
698 inverse_transform = Orientation(axcodes=orig_axcodes, as_closest_canonical=False, labels=labels)
699 # Apply inverse
700 with inverse_transform.trace_transform(False):
701 data = inverse_transform(data)
702
703 return data
704
705
706class Flip(InvertibleTransform, LazyTransform):

Callers 1

test_inverseMethod · 0.95

Calls 4

SpaceKeysClass · 0.90
OrientationClass · 0.85
pop_transformMethod · 0.80
trace_transformMethod · 0.45

Tested by 1

test_inverseMethod · 0.76