mirror of
https://github.com/283375/arcaea-offline-ocr.git
synced 2025-07-01 12:26:27 +00:00
refactor: XYWHRect
and b30 ocr
This commit is contained in:
@ -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])
|
||||
|
Reference in New Issue
Block a user