File size: 2,651 Bytes
96a96d9
66ec950
d5465e6
66ec950
597cce4
 
 
 
 
 
 
6e7a74d
 
 
 
597cce4
6e7a74d
66ec950
e06688d
5aca4ad
e2d5557
 
e06688d
96a96d9
 
 
590bb1b
98dff60
5aca4ad
98dff60
590bb1b
e2d5557
17d778a
e06688d
17d778a
 
 
96a96d9
e06688d
 
6e7a74d
96a96d9
 
 
 
6e61d26
e06688d
 
590bb1b
e06688d
597cce4
d5465e6
17d778a
590bb1b
17d778a
 
 
 
98dff60
 
 
 
2403575
e06688d
17d778a
 
 
 
d5465e6
17d778a
 
 
 
b30ce1c
17d778a
98dff60
 
 
52a0611
17d778a
e06688d
6e61d26
17d778a
 
 
 
 
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
import os
import streamlit as st
import albumentations as A

from utils import (
    load_augmentations_config,
    get_arguments,
    get_placeholder_params,
    select_transformations,
    show_random_params,
)
from visuals import (
    select_image,
    show_credentials,
    show_docstring,
    get_transormations_params,
)

# TODO: refactor all the new code

# get CLI params: the path to images and image width
path_to_images, width_original = get_arguments()

if not os.path.isdir(path_to_images):
    st.title("There is no directory: " + path_to_images)
else:
    # select interface type
    interface_type = st.sidebar.radio(
        "Select the interface mode", ["Simple", "Professional"]
    )

    # select image
    status, image = select_image(path_to_images, interface_type)
    if status == 1:
        st.title("Can't load image")
    if status == 2:
        st.title("Please, upload the image")
    else:
        # image was loaded successfully
        placeholder_params = get_placeholder_params(image)

        # load the config
        augmentations = load_augmentations_config(
            placeholder_params, "configs/augmentations.json"
        )

        # get list of transformations names
        transform_names = select_transformations(augmentations, interface_type)

        # get parameters for each transform
        transforms = get_transormations_params(transform_names, augmentations)

        try:
            # apply the transformation to the image
            data = A.ReplayCompose(transforms)(image=image)
            error = 0
        except ValueError:
            error = 1
            st.title(
                "The error has occurred. Most probably you have passed wrong set of parameters. \
            Check transforms that change the shape of image."
            )

        # proced only if everything is ok
        if error == 0:
            augmented_image = data["image"]
            # show title
            st.title("Demo of Albumentations")

            # show the images
            width_transformed = int(
                width_original / image.shape[1] * augmented_image.shape[1]
            )

            st.image(image, caption="Original image", width=width_original)
            st.image(
                augmented_image, caption="Transformed image", width=width_transformed
            )

            # random values used to get transformations
            show_random_params(data, interface_type)

            # print additional info
            for transform in transforms:
                show_docstring(transform)
                st.code(str(transform))
            show_credentials()