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