Define utility functions for data augmentation.
check_value(data: Union[int, float], min_value: Union[int, float], max_value: Union[int, float])
Source code in SaigeToolkit/data/transform/function_util.py
| def check_value(data: Union[int, float], min_value: Union[int, float], max_value: Union[int, float]):
if not (isinstance(data, (int, float))):
raise AugmentationParameterTypeError
if not (min_value <= data <= max_value):
raise AugmentationParameterRangeError
|
check_range(data: Union[Sequence[int], Sequence[float]], min_value: Union[int, float], max_value: Union[int, float])
Source code in SaigeToolkit/data/transform/function_util.py
| def check_range(
data: Union[Sequence[int], Sequence[float]],
min_value: Union[int, float],
max_value: Union[int, float],
):
if not (isinstance(data, Sequence) and len(data) == 2):
raise AugmentationParameterTypeError
check_value(data[0], min_value, max_value)
check_value(data[1], min_value, max_value)
if not (min_value <= data[0] <= data[1] <= max_value):
raise AugmentationParameterRangeError
|
ratio_to_value(ratio: float, min_value: Union[int, float], max_value: Union[int, float])
Source code in SaigeToolkit/data/transform/function_util.py
| def ratio_to_value(ratio: float, min_value: Union[int, float], max_value: Union[int, float]):
check_value(ratio, 0.0, 1.0)
min_value, max_value = min(min_value, max_value), max(min_value, max_value)
return (ratio * (max_value - min_value)) + min_value
|
Source code in SaigeToolkit/data/transform/function_util.py
| def support_gray(function):
@wraps(function)
def wrapper(image: ImageType, *args, **kwargs):
is_gray = image.ndim == 2
if is_gray:
image = np.stack([image, image, image], axis=-1)
image = function(image, *args, **kwargs)
if is_gray:
image = image[:, :, 0]
return image
return wrapper
|
Source code in SaigeToolkit/data/transform/function_util.py
| def support_rgba(function):
@wraps(function)
def wrapper(image: ImageType, *args, **kwargs):
is_rgba = image.ndim == 3 and image.shape[2] == 4
if is_rgba:
mask = image[:, :, 3:4]
image = image[:, :, :3]
image = function(image, *args, **kwargs)
if is_rgba:
image = np.concatenate([image, mask], axis=2)
return image
return wrapper
|
support_3dim_gray_image(function)
Source code in SaigeToolkit/data/transform/function_util.py
| def support_3dim_gray_image(function):
@wraps(function)
def decorator(image: ImageType, *args, **kwargs) -> Any:
is_3dim_gray = image.ndim == 3 and image.shape[2] == 1
if is_3dim_gray:
image = image[:, :, 0]
result = function(image=image, *args, **kwargs)
if is_3dim_gray:
result = result[:, :, np.newaxis]
return result
return decorator
|
support_multi_image(function)
Source code in SaigeToolkit/data/transform/function_util.py
| def support_multi_image(function):
@wraps(function)
def decorator(image: Union[List[ImageType], ImageType], *args, **kwargs) -> Any:
multipage = isinstance(image, List)
if not multipage:
image = [image]
results = [function(image=image_i, *args, **kwargs) for image_i in image]
if not multipage:
results = results[0]
return results
return decorator
|