Skip to content

Images Validators

siapy.utils.image_validators

validate_image_to_numpy_3channels

validate_image_to_numpy_3channels(
    image: ImageType,
) -> NDArray[floating[Any]]
Source code in siapy/utils/image_validators.py
18
19
20
21
22
23
24
25
26
27
28
29
30
def validate_image_to_numpy_3channels(image: ImageType) -> NDArray[np.floating[Any]]:
    if isinstance(image, SpectralImage):
        image_display = np.array(image.to_display())
    elif isinstance(image, Image):
        image_display = np.array(image)
    elif isinstance(image, np.ndarray) and len(image.shape) == 3 and image.shape[-1] == 3:
        image_display = image.copy()
    else:
        raise InvalidInputError(
            input_value=image,
            message="Argument image must be convertible to numpy array with 3 channels.",
        )
    return image_display

validate_image_to_numpy

validate_image_to_numpy(
    image: ImageType,
) -> NDArray[floating[Any]]
Source code in siapy/utils/image_validators.py
33
34
35
36
37
38
39
40
41
42
43
44
45
def validate_image_to_numpy(image: ImageType) -> NDArray[np.floating[Any]]:
    if isinstance(image, SpectralImage):
        image_np = image.to_numpy()
    elif isinstance(image, Image):
        image_np = np.array(image)
    elif isinstance(image, np.ndarray):
        image_np = image.copy()
    else:
        raise InvalidInputError(
            input_value=image,
            message="Argument image must be convertible to a numpy array.",
        )
    return image_np

validate_image_size

validate_image_size(
    output_size: ImageSizeType,
) -> tuple[int, int]
Source code in siapy/utils/image_validators.py
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
def validate_image_size(output_size: ImageSizeType) -> tuple[int, int]:
    if not isinstance(output_size, (int, tuple)):
        raise InvalidTypeError(
            input_value=output_size,
            allowed_types=ImageSizeType,
            message="Argument output_size must be an int or a tuple.",
        )
    if isinstance(output_size, int):
        output_size = (output_size, output_size)
    elif len(output_size) != 2 or not all([isinstance(el, int) for el in output_size]):
        raise InvalidInputError(
            input_value=output_size,
            message="Argument output_size tuple must have 2 elements and contain only integers.",
        )
    return output_size