Download clean/video/mintime/transforms/albu.py from deepsafe/model-code: direct link, hf CLI and curl.
- Browser
- Download file 1.68 kB
-
https://huggingface.co/deepsafe/model-code/resolve/main/clean/video/mintime/transforms/albu.py
- Command line
-
hf download hf://deepsafe/model-code/clean/video/mintime/transforms/albu.py
-
curl -L -o albu.py https://huggingface.co/deepsafe/model-code/resolve/main/clean/video/mintime/transforms/albu.py
1.68 kB
| import random | |
| import cv2 | |
| import numpy as np | |
| from albumentations import DualTransform, ImageOnlyTransform | |
| from albumentations.augmentations.functional import crop | |
| # Resize the image isotropically | |
| def isotropically_resize_image(img, size, interpolation_down=cv2.INTER_AREA, interpolation_up=cv2.INTER_CUBIC): | |
| h, w = img.shape[:2] | |
| if max(w, h) == size: | |
| return img | |
| if w > h: | |
| scale = size / w | |
| h = h * scale | |
| w = size | |
| else: | |
| scale = size / h | |
| w = w * scale | |
| h = size | |
| interpolation = interpolation_up if scale > 1 else interpolation_down | |
| img = img.astype('uint8') | |
| resized = cv2.resize(img, (int(w), int(h)), interpolation=interpolation) | |
| return resized | |
| class IsotropicResize(DualTransform): | |
| def __init__(self, max_side, interpolation_down=cv2.INTER_AREA, interpolation_up=cv2.INTER_CUBIC, | |
| always_apply=False, p=1): | |
| super(IsotropicResize, self).__init__(always_apply, p) | |
| self.max_side = max_side | |
| self.interpolation_down = interpolation_down | |
| self.interpolation_up = interpolation_up | |
| def apply(self, img, interpolation_down=cv2.INTER_AREA, interpolation_up=cv2.INTER_CUBIC, **params): | |
| return isotropically_resize_image(img, size=self.max_side, interpolation_down=interpolation_down, | |
| interpolation_up=interpolation_up) | |
| def apply_to_mask(self, img, **params): | |
| return self.apply(img, interpolation_down=cv2.INTER_NEAREST, interpolation_up=cv2.INTER_NEAREST, **params) | |
| def get_transform_init_args_names(self): | |
| return ("max_side", "interpolation_down", "interpolation_up") | |