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')