Spaces:
Runtime error
Runtime error
import cv2 | |
import numpy as np | |
from albumentations.augmentations.geometric import functional as F | |
from albumentations.core.transforms_interface import DualTransform | |
__all__ = ["ProportionalMinScale"] | |
class ProportionalMinScale(DualTransform): | |
def __init__( | |
self, | |
width: int, | |
height: int, | |
interpolation: int = cv2.INTER_LINEAR, | |
always_apply: bool = False, | |
p: float = 1, | |
): | |
super(ProportionalMinScale, self).__init__(always_apply, p) | |
self.width = width | |
self.height = height | |
def apply( | |
self, img: np.ndarray, width: int = 256, height: int = 256, interpolation: int = cv2.INTER_LINEAR, **params): | |
h_img, w_img, _ = img.shape | |
min_side = np.min([h_img, w_img]) | |
if (height/h_img)*w_img >= width: | |
if h_img == min_side: | |
return F.smallest_max_size(img, max_size=height, interpolation=interpolation) | |
else: | |
return F.longest_max_size(img, max_size=height, interpolation=interpolation) | |
if (width/w_img)*h_img >= height: | |
if w_img == min_side: | |
return F.smallest_max_size(img, max_size=width, interpolation=interpolation) | |
else: | |
return F.longest_max_size(img, max_size=width, interpolation=interpolation) | |
return F.longest_max_size(img, max_size=width, interpolation=interpolation) | |
def get_params(self): | |
return {"width": self.width, "height": self.height} | |
def get_transform_init_args_names(self): | |
return ("width", "height", "intepolation") | |