IliaLarchenko's picture
added the optional path to the images folder
96a96d9
raw
history blame
2.25 kB
import os
import streamlit as st
import albumentations as A
from utils import load_augmentations_config, get_path_to_the_image
from visuals import (
show_transform_control,
select_image,
show_credentials,
show_docstring,
)
# get the path to images
path_to_images = get_path_to_the_image()
if not os.path.isdir(path_to_images):
st.title("There is no directory: " + path_to_images)
else:
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")
# select image
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_original = 400
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()