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

Method inverse_transform

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

Source from the content-addressed store, hash-verified

1157 return self.inverse_transform(data, transform)
1158
1159 def inverse_transform(self, data: torch.Tensor, transform) -> torch.Tensor:
1160 if transform[TraceKeys.EXTRA_INFO]["do_padcrop"]:
1161 orig_size = transform[TraceKeys.ORIG_SIZE]
1162 pad_or_crop = ResizeWithPadOrCrop(spatial_size=orig_size, mode="edge")
1163 padcrop_xform = transform[TraceKeys.EXTRA_INFO]["padcrop"]
1164 padcrop_xform[TraceKeys.EXTRA_INFO]["pad_info"][TraceKeys.ID] = TraceKeys.NONE
1165 padcrop_xform[TraceKeys.EXTRA_INFO]["crop_info"][TraceKeys.ID] = TraceKeys.NONE
1166 # this uses inverse because spatial_size // 2 in the forward pass of center crop may cause issues
1167 data = pad_or_crop.inverse_transform(data, padcrop_xform) # type: ignore
1168 # Create inverse transform
1169 mode = transform[TraceKeys.EXTRA_INFO]["mode"]
1170 align_corners = transform[TraceKeys.EXTRA_INFO]["align_corners"]
1171 dtype = transform[TraceKeys.EXTRA_INFO]["dtype"]
1172 inverse_transform = Resize(spatial_size=transform[TraceKeys.ORIG_SIZE])
1173 # Apply inverse
1174 with inverse_transform.trace_transform(False):
1175 out = inverse_transform(
1176 data, mode=mode, align_corners=None if align_corners == TraceKeys.NONE else align_corners, dtype=dtype
1177 )
1178 return out
1179
1180
1181class Rotate90(InvertibleTransform, LazyTransform):

Callers 6

inverseMethod · 0.95
inverseMethod · 0.45
inverseMethod · 0.45
inverseMethod · 0.45
inverseMethod · 0.45
inverseMethod · 0.45

Calls 4

inverse_transformMethod · 0.95
ResizeWithPadOrCropClass · 0.90
ResizeClass · 0.85
trace_transformMethod · 0.45

Tested by

no test coverage detected