File size: 1,981 Bytes
df20613 beb3e34 b73b4e1 df20613 8cc7c1a 26b8b00 31b5ef1 8cc7c1a 26b8b00 775fea9 b475b0b 26b8b00 775fea9 42bc3b0 3d79c89 26b8b00 b2b0a36 775fea9 391663d b17cf1a 391663d 775fea9 3d79c89 8cc7c1a df5841e beb3e34 854f030 391663d 3d79c89 df5841e 186e7ec 854f030 df5841e 854f030 df5841e aca188e df5841e 186e7ec 3d79c89 df5841e aca188e df5841e ac39450 b475b0b 6512185 b2b0a36 8cc7c1a |
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 |
import streamlit as st
from PIL import Image, ImageDraw
from streamlit_image_coordinates import streamlit_image_coordinates
import numpy as np
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"] = []
if "img" not in st.session_state:
st.session_state["img"] = 0
if "draw" not in st.session_state:
st.session_state["draw"] = False
def button_click():
st.session_state["img"]=np.random.randint(100)
#current_image=ds[r]['image']
#st.write(str(r))
st.session_state["points"] = []
#value = streamlit_image_coordinates(current_image, key="pil")
st.session_state["draw"]=False
def get_ellipse_coords(point):# tuple[int, int]) -> tuple[int, int, int, int]):
center = point
radius = 16
return (
center[0] - radius,
center[1] - radius,
center[0] + radius,
center[1] + radius,
)
current_image=ds[st.session_state["img"]]['image']
draw = ImageDraw.Draw(current_image)
if st.session_state["draw"]:
# 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(current_image, 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.session_state["draw"]=True
st.experimental_rerun()
st.button('Random frame', on_click=button_click)
st.write(st.session_state["img"])
#st.write(st.session_state["points"])
st.write(value)
st.write(value["x"], value["y"])
#else:
# st.write('Gohuhuhubye') |