File size: 3,510 Bytes
2f39864 afd6ab5 3efd956 afd6ab5 71278f4 afd6ab5 2ecea20 20b8cdc d8b1533 afd6ab5 2f39864 d8b1533 2f39864 20b8cdc 71278f4 2f39864 afd6ab5 20b8cdc 71278f4 3efd956 71278f4 d8b1533 71278f4 d8b1533 71278f4 d8b1533 71278f4 afd6ab5 71278f4 54af1ee afd6ab5 2ecea20 afd6ab5 2ecea20 b28a0c6 20b8cdc b28a0c6 20b8cdc afd6ab5 242631d afd6ab5 54af1ee 1e4b31b 54af1ee 1e4b31b 54af1ee 1e4b31b 54af1ee afd6ab5 3efd956 2ecea20 242631d 71278f4 242631d |
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 |
import cv2
import streamlit as st
import albumentations as A
from control import param2func
from utils import get_images_list, load_image, upload_image
def show_logo():
st.image(load_image("logo.png", "../images"), format="PNG")
def select_image(path_to_images: str, interface_type: str = "Simple"):
""" Show interface to choose the image, and load it
Args:
path_to_images (dict): path ot folder with images
interface_type (dict): mode of the interface used
Returns:
(status, image)
status (int):
0 - if everything is ok
1 - if there is error during loading of image file
2 - if user hasn't uploaded photo yet
"""
image_names_list = get_images_list(path_to_images)
if len(image_names_list) < 1:
return 1, 0
else:
if interface_type == "Professional":
image_name = st.sidebar.selectbox(
"Select an image:", image_names_list + ["Upload my image"]
)
else:
image_name = st.sidebar.selectbox("Select an image:", image_names_list)
if image_name != "Upload my image":
try:
image = load_image(image_name, path_to_images)
return 0, image
except cv2.error:
return 1, 0
else:
try:
image = upload_image()
return 0, image
except cv2.error:
return 1, 0
except AttributeError:
return 2, 0
def show_transform_control(transform_params: dict, n_for_hash: int) -> dict:
param_values = {"p": 1.0}
if len(transform_params) == 0:
st.sidebar.text("Transform has no parameters")
else:
for param in transform_params:
control_function = param2func[param["type"]]
if isinstance(param["param_name"], list):
returned_values = control_function(**param, n_for_hash=n_for_hash)
for name, value in zip(param["param_name"], returned_values):
param_values[name] = value
else:
param_values[param["param_name"]] = control_function(
**param, n_for_hash=n_for_hash
)
return param_values
def show_credentials():
st.markdown("* * *")
st.subheader("Credentials:")
st.markdown(
(
"Source: [github.com/IliaLarchenko/albumentations-demo]"
"(https://github.com/IliaLarchenko/albumentations-demo)"
)
)
st.markdown(
(
"Albumentations library: [github.com/albumentations-team/albumentations]"
"(https://github.com/albumentations-team/albumentations)"
)
)
st.markdown(
(
"Image Source: [pexels.com/royalty-free-images]"
"(https://pexels.com/royalty-free-images/)"
)
)
def get_transormations_params(transform_names: list, augmentations: dict) -> list:
transforms = []
for i, transform_name in enumerate(transform_names):
# select the params values
st.sidebar.subheader("Params of the " + transform_name)
param_values = show_transform_control(augmentations[transform_name], i)
transforms.append(getattr(A, transform_name)(**param_values))
return transforms
def show_docstring(obj_with_ds):
st.markdown("* * *")
st.subheader("Docstring for " + obj_with_ds.__class__.__name__)
st.text(obj_with_ds.__doc__)
|