(self, data: Mapping[Hashable, torch.Tensor])
| 610 | return d |
| 611 | |
| 612 | def inverse(self, data: Mapping[Hashable, torch.Tensor]) -> dict[Hashable, torch.Tensor]: |
| 613 | d = dict(data) |
| 614 | |
| 615 | for key in self.key_iterator(d): |
| 616 | transform = self.get_most_recent_transform(d, key, check=False) |
| 617 | key_type = transform[TraceKeys.EXTRA_INFO].get("type", "image_key") |
| 618 | # Check if random transform was actually performed (based on `prob`) |
| 619 | if transform[TraceKeys.DO_TRANSFORM]: |
| 620 | # zoom image, copied from monai.transforms.spatial.dictionary.Zoomd |
| 621 | if key_type == "image_key": |
| 622 | xform = self.pop_transform(d[key]) |
| 623 | d[key].applied_operations.append(xform[TraceKeys.EXTRA_INFO]) # type: ignore |
| 624 | d[key] = self.rand_zoom.inverse(d[key]) |
| 625 | |
| 626 | # zoom boxes |
| 627 | if key_type == "box_key": |
| 628 | # Create inverse transform |
| 629 | zoom = np.array(transform[TraceKeys.EXTRA_INFO]["zoom"]) |
| 630 | src_spatial_size = transform[TraceKeys.EXTRA_INFO]["src_spatial_size"] |
| 631 | box_inverse_transform = ZoomBox(zoom=(1.0 / zoom).tolist(), keep_size=self.rand_zoom.keep_size) |
| 632 | d[key] = box_inverse_transform(d[key], src_spatial_size=src_spatial_size) |
| 633 | # Remove the applied transform |
| 634 | self.pop_transform(d, key) |
| 635 | return d |
| 636 | |
| 637 | |
| 638 | class FlipBoxd(MapTransform, InvertibleTransform): |
nothing calls this directly
no test coverage detected