Spaces:
Sleeping
Sleeping
| 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(): | |
| # 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() | |