def pad(img, padding, mode='constant', **kwargs): if isinstance(padding, int): padding = [[padding, padding], [padding, padding]] else: padding = [containerize(p, 2) for p in padding] if img.ndim == 3 and len(padding) == 2: padding.append([0, 0]) return np.pad(img, padding, mode, **kwargs)
def __init__(self, size, interpolate='BILINEAR'): self.size = containerize(size, 2) self.interpolate = interpolate
def __init__(self, angle=180, scale=1, expand=False, shift=False): self.angle = (-angle, angle) if isinstance(angle, (int, float)) else angle self.scale = containerize(scale, 2) self.expand = expand self.shift = shift
def __init__(self, size, check_size=False): self.size = containerize(size, 2) self.check_size = check_size
def __init__(self, padding): if isinstance(padding, (int, float)): padding = [[padding, padding], [padding, padding]] else: padding = [containerize(p, 2) for p in padding] self.padding = padding
def resize(img, size, interpolate='BILINEAR'): w, h = containerize(size, 2) ih, iw = img.shape[:2] if ih != h or iw != w: img = cv.resize(img, (w, h), interpolation=INTER_MODE[interpolate]) return img