File size: 2,241 Bytes
96a96d9
66ec950
d5465e6
66ec950
96a96d9
e2d5557
6e7a74d
 
 
 
 
 
66ec950
e2d5557
 
96a96d9
 
 
e2d5557
96a96d9
 
 
 
 
 
66ec950
96a96d9
 
 
 
 
 
6e7a74d
96a96d9
 
 
 
6e61d26
96a96d9
 
 
 
d5465e6
96a96d9
 
2403575
96a96d9
 
 
 
d5465e6
96a96d9
 
 
 
 
 
b30ce1c
96a96d9
 
 
 
52a0611
96a96d9
 
6e61d26
96a96d9
 
 
 
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
import os
import streamlit as st
import albumentations as A


from utils import load_augmentations_config, get_arguments
from visuals import (
    show_transform_control,
    select_image,
    show_credentials,
    show_docstring,
)

# 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 image
    status, image = select_image(path_to_images)
    if status == 0:
        st.title("Can't load image from: " + path_to_images)
    else:
        # show title
        st.title("Demo of Albumentations")

        placeholder_params = {
            "image_width": image.shape[1],
            "image_height": image.shape[0],
            "image_half_width": int(image.shape[1] / 2),
            "image_half_height": int(image.shape[0] / 2),
        }

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

        # select a transformation
        transform_name = st.sidebar.selectbox(
            "Select a transformation:", sorted(list(augmentations.keys()))
        )

        # select the params values
        param_values = show_transform_control(augmentations[transform_name])

        # apply the transformation to the image
        transform = getattr(A, transform_name)(**param_values)
        data = A.ReplayCompose([transform])(image=image)
        augmented_image = data["image"]

        # TODO add convinient replay compose
        # applied_params = data["replay"]["transforms"][0]['params']
        # for k,v in applied_params.items():
        #     applied_params[k] = str(v)
        # st.write(applied_params)
        # st.write(data["replay"])

        # 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)

        # print additional info
        st.code(str(transform))
        show_docstring(transform)
        show_credentials()