File size: 2,000 Bytes
66ec950
 
 
 
 
 
 
 
87fe461
 
66ec950
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
ab818d6
66ec950
 
 
 
 
 
 
 
 
 
 
ab818d6
66ec950
 
ab818d6
66ec950
 
 
 
 
87fe461
 
 
 
 
 
 
 
 
 
bcb8af1
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
import numpy as np
import os
import cv2
import json

import albumentations as A
import streamlit as st

from control import *


def load_image(image_name, path_to_folder = '../images'):
    path_to_image = os.path.join(path_to_folder, image_name)
    image = cv2.imread(path_to_image)
    image = cv2.cvtColor(image, cv2.COLOR_BGR2RGB)
    return image


st.title('Demo of Albumentations transforms')


# selecting the image
path_to_images = 'images'
image_names_list = [x for x in os.listdir(path_to_images) if x[-3:] in ['jpg', 'peg', 'png']]
image_name = st.sidebar.selectbox('Select an image:', image_names_list)
image = load_image(image_name, path_to_images)


# selecting the transformation
path_to_config = 'configs/augmentations.json'
with open(path_to_config, 'r') as config_file:
    augmentations = json.load(config_file)
transform_name = st.sidebar.selectbox('Select a transformation:', sorted(list(augmentations.keys())))
transform_params = augmentations[transform_name]


# show the transform options
if len(transform_params) == 0:
    st.sidebar.text(transform_name + ' transform has no parameters')
else:
    for param in transform_params:
        param['value'] = param2func[param['type']](**param)
        
        
params_string = ", ".join([param['param_name'] + '=' + str(param['value']) for param in transform_params] + ['p=1.0'])
params_string = '(' + params_string + ')'

st.text(transform_name + params_string)
st.text('Press R to update')
exec('transform = A.' + transform_name + params_string)
st.image([image, transform(image = image)['image']], 
         caption = ['Original image', 'Transformed image'],
         width = 320)

st.subheader('Docstring:')
st.text(str(transform.__doc__))


st.text('')
st.text('')
st.subheader('Credentials:')
st.text('Source: https://github.com/IliaLarchenko/albumentations-demo')
st.text('Albumentation library: https://github.com/albumentations-team/albumentations')
st.text('Image Source: https://www.pexels.com/royalty-free-images/')