refactor: XYWHRect and b30 ocr

This commit is contained in:
2025-06-21 16:06:49 +08:00
parent b545c5b6bf
commit 3ebb058cdf
4 changed files with 72 additions and 60 deletions

View File

@ -1,5 +1,5 @@
from collections.abc import Iterable
from typing import Callable, TypeVar, Union, overload
from typing import TypeVar, overload
import cv2
import numpy as np
@ -15,32 +15,25 @@ def imread_unicode(filepath: str, flags: int = cv2.IMREAD_UNCHANGED):
return cv2.imdecode(np.fromfile(filepath, dtype=np.uint8), flags)
def construct_int_xywh_rect(
rect: XYWHRect, func: Callable[[Union[int, float]], int] = round
):
return XYWHRect(*[func(num) for num in rect])
@overload
def apply_factor(item: int, factor: float) -> float: ...
@overload
def apply_factor(item: int, factor: float) -> float:
...
@overload
def apply_factor(item: float, factor: float) -> float:
...
def apply_factor(item: float, factor: float) -> float: ...
T = TypeVar("T", bound=Iterable)
@overload
def apply_factor(item: T, factor: float) -> T:
...
def apply_factor(item: T, factor: float) -> T: ...
def apply_factor(item, factor: float):
if isinstance(item, (int, float)):
return item * factor
if isinstance(item, XYWHRect):
return item.__class__(*[i * factor for i in item])
if isinstance(item, Iterable):
return item.__class__([i * factor for i in item])