Esempio n. 1
0
 def _transform(self, input: Any, params: Dict[str, Any]) -> Any:
     if isinstance(input, features.Image):
         output = F.resize_image_tensor(input,
                                        self.size,
                                        interpolation=self.interpolation)
         return features.Image.new_like(input, output)
     elif isinstance(input, features.SegmentationMask):
         output = F.resize_segmentation_mask(input, self.size)
         return features.SegmentationMask.new_like(input, output)
     elif isinstance(input, features.BoundingBox):
         output = F.resize_bounding_box(input,
                                        self.size,
                                        image_size=input.image_size)
         return features.BoundingBox.new_like(input,
                                              output,
                                              image_size=cast(
                                                  Tuple[int, int],
                                                  tuple(self.size)))
     elif isinstance(input, PIL.Image.Image):
         return F.resize_image_pil(input,
                                   self.size,
                                   interpolation=self.interpolation)
     elif is_simple_tensor(input):
         return F.resize_image_tensor(input,
                                      self.size,
                                      interpolation=self.interpolation)
     else:
         return input
Esempio n. 2
0
    def resize(  # type: ignore[override]
        self,
        size: List[int],
        interpolation: InterpolationMode = InterpolationMode.BILINEAR,
        max_size: Optional[int] = None,
        antialias: bool = False,
    ) -> BoundingBox:
        from torchvision.prototype.transforms import functional as _F

        output = _F.resize_bounding_box(self,
                                        size,
                                        image_size=self.image_size,
                                        max_size=max_size)
        image_size = (size[0], size[0]) if len(size) == 1 else (size[0],
                                                                size[1])
        return BoundingBox.new_like(self,
                                    output,
                                    image_size=image_size,
                                    dtype=output.dtype)