File size: 1,729 Bytes
df20613
beb3e34
b73b4e1
 
df20613
8cc7c1a
26b8b00
31b5ef1
 
 
 
 
 
 
 
 
8cc7c1a
 
 
 
 
26b8b00
 
 
 
 
 
 
 
 
d3c262e
d96d68b
d3c262e
26b8b00
b2b0a36
 
b17cf1a
 
b2b0a36
 
d96d68b
8cc7c1a
d96d68b
 
854f030
d96d68b
 
 
 
 
 
 
 
 
beb3e34
 
d96d68b
 
 
 
854f030
d96d68b
854f030
d96d68b
 
854f030
d96d68b
 
 
aca188e
 
d96d68b
 
 
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
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[r]['image']

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

while True:

  with current_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)
      
  st.write(str(r))

#else:
#    st.write('Gohuhuhubye')