File size: 1,666 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
 
 
9fa5bcc
 
 
84451af
050e5aa
84451af
 
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
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()


    st.button('Random frame', on_click=button_click)

    def button_click():
        r=np.random.randint(100)
        #current_image=ds[r]['image']
        st.write(str(r))
        st.session_state["points"] = []
#else:
#    st.write('Gohuhuhubye')