File size: 4,101 Bytes
96a96d9 66ec950 d5465e6 66ec950 597cce4 6e7a74d 597cce4 6e7a74d 66ec950 6e7a74d 8cc587c 84a40f2 8cc587c 96a96d9 6e61d26 8cc587c 98dff60 2403575 8cc587c d5465e6 8cc587c b30ce1c 8cc587c 84a40f2 8cc587c b5654c8 8cc587c 52a0611 7b958ab bf33dcc 3a1f2a2 aeed776 bf33dcc 3a1f2a2 7b958ab 6e61d26 8cc587c |
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 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 |
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,
)
def main():
st.write("This online instance of the app will be discontinued after 18th of March 2024.")
st.write("You can still use it locally of deploy your own instance. See the [source code](https://github.com/IliaLarchenko/albumentations-demo).")
st.write("Or use the fork supported and deployed by albumentations team: [https://demo.albumentations.ai/](https://demo.albumentations.ai/).")
# 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 the 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."
)
# proceed 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,
)
# comment about refreshing
st.write("*Press 'R' to refresh*")
# 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()
# adding google analytics pixel
# only when deployed online. don't collect statistics of local usage
if "GA" in os.environ:
st.image(os.environ["GA"])
st.markdown(
(
"[Privacy policy]"
+ (
"(https://htmlpreview.github.io/?"
+ "https://github.com/IliaLarchenko/"
+ "albumentations-demo/blob/deploy/docs/privacy.html)"
)
)
)
if __name__ == "__main__":
main()
|