Spaces:
Build error
Build error
import streamlit as st | |
from PIL import Image, ImageDraw | |
from streamlit_image_coordinates import streamlit_image_coordinates | |
from datasets import load_dataset | |
ds = load_dataset("Circularmachines/batch_indexing_machine_100_small_imgs", split="train") | |
st.set_page_config( | |
page_title="Streamlit Image Coordinates: Image Update", | |
page_icon="🎯", | |
layout="wide", | |
) | |
#"# :dart: Streamlit Image Coordinates: Image Update" | |
if "points" not in st.session_state: | |
st.session_state["points"] = [] | |
#"## Click on image" | |
with ds[0]['image'] as img: | |
draw = ImageDraw.Draw(img) | |
def get_ellipse_coords(point):# tuple[int, int]) -> tuple[int, int, int, int]): | |
center = point | |
radius = 32 | |
return ( | |
center[0] - radius, | |
center[1] - radius, | |
center[0] + radius, | |
center[1] + radius, | |
) | |
# Draw an ellipse at each coordinate in points | |
for point in st.session_state["points"]: | |
coords = get_ellipse_coords(point) | |
draw.rectangle(coords, outline="green",width=2) | |
value = streamlit_image_coordinates(img, key="pil") | |
if value is not None: | |
point = value["x"], value["y"] | |
if point not in st.session_state["points"]: | |
st.session_state["points"]=[point] | |
st.experimental_rerun() | |
if st.button('Say hello'): | |
st.write('Why hello there') | |
else: | |
st.write('Goodbye') |