(self, data: Mapping[Hashable, torch.Tensor])
| 446 | self.keep_size = keep_size |
| 447 | |
| 448 | def __call__(self, data: Mapping[Hashable, torch.Tensor]) -> dict[Hashable, torch.Tensor]: |
| 449 | d: dict[Hashable, torch.Tensor] = dict(data) |
| 450 | |
| 451 | # zoom box |
| 452 | for box_key, box_ref_image_key in zip(self.box_keys, self.box_ref_image_keys): |
| 453 | src_spatial_size = d[box_ref_image_key].shape[1:] |
| 454 | dst_spatial_size = [int(round(z * ss)) for z, ss in zip(self.zoomer.zoom, src_spatial_size)] # type: ignore |
| 455 | self.zoomer.zoom = [ds / float(ss) for ss, ds in zip(src_spatial_size, dst_spatial_size)] |
| 456 | d[box_key] = ZoomBox(zoom=self.zoomer.zoom, keep_size=self.keep_size)( |
| 457 | d[box_key], src_spatial_size=src_spatial_size |
| 458 | ) |
| 459 | self.push_transform( |
| 460 | d, |
| 461 | box_key, |
| 462 | extra_info={"zoom": self.zoomer.zoom, "src_spatial_size": src_spatial_size, "type": "box_key"}, |
| 463 | ) |
| 464 | |
| 465 | # zoom image |
| 466 | for key, mode, padding_mode, align_corners in zip( |
| 467 | self.image_keys, self.mode, self.padding_mode, self.align_corners |
| 468 | ): |
| 469 | d[key] = self.zoomer(d[key], mode=mode, padding_mode=padding_mode, align_corners=align_corners) |
| 470 | |
| 471 | return d |
| 472 | |
| 473 | def inverse(self, data: Mapping[Hashable, torch.Tensor]) -> dict[Hashable, torch.Tensor]: |
| 474 | d: dict[Hashable, torch.Tensor] = dict(data) |
nothing calls this directly
no test coverage detected