File size: 1,684 Bytes
2a6062c
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
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
import gradio as gr
from gradio_image_annotation import image_annotator
import time
import numpy as np
import random

example_annotation = {
    "image": "https://gradio-builds.s3.amazonaws.com/demo-files/base.png",
    "boxes": [
        {
            "xmin": 636,
            "ymin": 575,
            "xmax": 801,
            "ymax": 697,
            "label": "Vehicle",
            "color": (255, 0, 0)
        },
        {
            "xmin": 360,
            "ymin": 615,
            "xmax": 386,
            "ymax": 702,
            "label": "Person",
            "color": (0, 255, 0)
        }
    ]
}

example_crop = {
    "image": "https://raw.githubusercontent.com/gradio-app/gradio/main/guides/assets/logo.png",
    "boxes": [
        {
            "xmin": 30,
            "ymin": 70,
            "xmax": 530,
            "ymax": 500,
            "color": (100, 200, 255)
        }
    ]
}


def run(annotations):
    while True:
        w = 1920
        # h = random.randint(100, 700)
        h = 1080
        img = np.random.random((h, w, 3))
        yield  {
            "image": img
        }
        time.sleep(1)

def run2(annotations):
    while True:
        w = 1920
        # h = random.randint(100, 700)
        h = 1080
        img = np.random.random((h, w, 3))
        yield  img
        time.sleep(1)

with gr.Blocks() as demo:
    with gr.Row():
        annotator = image_annotator(
            example_crop,
            image_type="numpy",
        )
        image = gr.Image()
    button = gr.Button()
    button.click(run, annotator, annotator)
    button2 = gr.Button()
    button2.click(run2, image, image)


if __name__ == "__main__":
    demo.launch()