Args: img (PIL Image): Image to be resized. img_num (int): Number of images, used to change max_tokens. Returns: PIL Image or Tensor: Rescaled image with divisible dimensions.
(self, img, img_num=1)
| 77 | return new_width, new_height |
| 78 | |
| 79 | def forward(self, img, img_num=1): |
| 80 | """ |
| 81 | Args: |
| 82 | img (PIL Image): Image to be resized. |
| 83 | img_num (int): Number of images, used to change max_tokens. |
| 84 | Returns: |
| 85 | PIL Image or Tensor: Rescaled image with divisible dimensions. |
| 86 | """ |
| 87 | if isinstance(img, torch.Tensor): |
| 88 | height, width = img.shape[-2:] |
| 89 | else: |
| 90 | width, height = img.size |
| 91 | |
| 92 | scale = min(self.max_size / max(width, height), 1.0) |
| 93 | scale = max(scale, self.min_size / min(width, height)) |
| 94 | new_width, new_height = self._apply_scale(width, height, scale) |
| 95 | |
| 96 | # Ensure the number of pixels does not exceed max_pixels |
| 97 | if new_width * new_height > self.max_pixels / img_num: |
| 98 | scale = self.max_pixels / img_num / (new_width * new_height) |
| 99 | new_width, new_height = self._apply_scale(new_width, new_height, scale) |
| 100 | |
| 101 | # Ensure longest edge does not exceed max_size |
| 102 | if max(new_width, new_height) > self.max_size: |
| 103 | scale = self.max_size / max(new_width, new_height) |
| 104 | new_width, new_height = self._apply_scale(new_width, new_height, scale) |
| 105 | |
| 106 | return F.resize(img, (new_height, new_width), self.interpolation, antialias=self.antialias) |
| 107 | |
| 108 | _RESNET_MEAN = [0.485, 0.456, 0.406] |
| 109 | _RESNET_STD = [0.229, 0.224, 0.225] |
nothing calls this directly
no test coverage detected