Tanishq Salkar
code updated
9de8051
raw
history blame contribute delete
665 Bytes
from __future__ import annotations
from typing import Literal
from pydantic import BaseModel
from dataclasses import dataclass
from PIL import Image
class BoundingBox(BaseModel):
x0: float
y0: float
x1: float
y1: float
@classmethod
def from_yolo(cls, cx: float, cy: float, w: float, h: float) -> BoundingBox:
return cls(x0=cx - w / 2, y0=cy - h / 2, x1=cx + w / 2, y1=cy + h / 2)
class Widget(BaseModel):
widget_type: Literal[
"TextBox",
"ChoiceButton",
"Signature",
]
bounding_box: BoundingBox
page: int
@dataclass
class Page:
image: Image.Image
width: float
height: float