Spaces:
Runtime error
Runtime error
| from pathlib import Path | |
| import PIL | |
| from PIL import Image | |
| import numpy as np | |
| from dataclasses import dataclass | |
| # TODO add register new converter so that it is accessible via converters.to_x | |
| def ensure_class(func, params): | |
| def func_wrapper(function): | |
| def wrapper(self=None, *args, **kwargs): | |
| for key in kwargs: | |
| if key in params: | |
| kwargs[key] = func(kwargs[key]) | |
| if self is not None: | |
| return function(self, *args, **kwargs) | |
| else: | |
| return function(*args, **kwargs) | |
| return wrapper | |
| return func_wrapper | |
| def as_PIL(img): | |
| if not isinstance(img, PIL.Image.Image): | |
| if isinstance(img, Path): | |
| img = img.as_posix() | |
| if isinstance(img, str): | |
| img = Image.open(img) | |
| elif isinstance(img, np.ndarray): | |
| img = Image.fromarray(img) | |
| else: | |
| raise NotImplementedError | |
| return img | |
| def to_ndarray(input): | |
| if not isinstance(input, np.ndarray): | |
| input = np.array(input) | |
| return input | |
| def to_Path(input): | |
| if not isinstance(input, Path): | |
| input = Path(input) | |
| return input | |