File size: 1,818 Bytes
20bdfba
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
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
import gradio as gr
from dotenv import load_dotenv
import os
from typing import List
from shapely.geometry import Point

from physical.physical_checkbox import *
from physical.physical_boxes_define import gdf
from utils.utils_visible import set_visible

load_dotenv()
PATH_ASSETS = os.getenv('PATH_ASSETS')

# Function to find the matching bounding box for a given point and return the image with boxes
def find_bounding_box(evt: gr.SelectData, img, section: str):
    x, y = evt.index[0], evt.index[1]
    point = Point(x, y)
    match = gdf[gdf.contains(point)]
    if not match.empty:
        matched_box = match.iloc[0]['name']
        checkbox_beak, text_beak, checkbox_body, text_body, checkbox_feathers, text_feathers, checkbox_head, text_head, checkbox_legs, text_legs = process_body_parts(section, matched_box)
    else:
        matched_box = None
        checkbox_beak, text_beak, checkbox_body, text_body, checkbox_feathers, text_feathers, checkbox_head, text_head, checkbox_legs, text_legs = process_body_parts(section, matched_box)
    return checkbox_beak, text_beak, checkbox_body, text_body, checkbox_feathers, text_feathers, checkbox_head, text_head, checkbox_legs, text_legs

    

# Gradio app
def create_bird_anatomy(visible, section: str):
    # Draw bounding boxes on the image
    print
    img_with_boxes = gr.Image(value=PATH_ASSETS+'images/bird_boxed.png', 
                            show_label=False, 
                            height="600px",
                            elem_id=section,
                            visible=visible)
    return img_with_boxes

def show_physical(choice, section: str): 
    visible = set_visible(choice)
    physical_boxes = create_bird_anatomy(visible, section)
    add_data_tmp("wounded_dead", "physical_radio", choice)
    return physical_boxes