File size: 1,601 Bytes
df20613 beb3e34 b73b4e1 df20613 8cc7c1a 26b8b00 31b5ef1 8cc7c1a 26b8b00 f668f8e a68aba3 26b8b00 8cc7c1a f668f8e 854f030 e895b3f cf54ad5 6e07b6f cf54ad5 beb3e34 854f030 6e07b6f 854f030 ca45677 aca188e 8cc7c1a 9c0f7df 8cc7c1a a68aba3 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 |
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"] = []
#"## Click on image"
r=0#np.random.randint(100)
current_image=ds[0]['image']
with ds[r]['image'] as img:
draw = ImageDraw.Draw(img)
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,
)
# 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('Random frame'):
r=np.random.randint(100)
current_image=ds[r]['image']
st.write(str(r))
st.session_state["points"] = []
#else:
# st.write('Gohuhuhubye') |