|
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') |
|
|
|
|
|
|
|
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) |
|
|
|
|
|
|
|
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] |
|
|
|
|
|
|
|
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('Albumentations library: https://github.com/albumentations-team/albumentations') |
|
st.text('Image Source: https://www.pexels.com/royalty-free-images/') |