mirror of
https://github.com/283375/arcaea-offline-ocr.git
synced 2025-07-01 12:26:27 +00:00
wip: Chieri V4 B30 ocr
This commit is contained in:
@ -1,8 +1,11 @@
|
||||
from collections.abc import Iterable
|
||||
from typing import Callable, Tuple, TypeVar, Union, overload
|
||||
|
||||
from cv2 import IMREAD_UNCHANGED, imdecode
|
||||
from numpy import fromfile as np_fromfile
|
||||
from numpy import uint8
|
||||
|
||||
from .types import Mat
|
||||
from .types import Mat, XYWHRect
|
||||
|
||||
__all__ = ["imread_unicode"]
|
||||
|
||||
@ -11,3 +14,34 @@ def imread_unicode(filepath: str) -> Mat:
|
||||
# https://stackoverflow.com/a/57872297/16484891
|
||||
# CC BY-SA 4.0
|
||||
return imdecode(np_fromfile(filepath, dtype=uint8), IMREAD_UNCHANGED)
|
||||
|
||||
|
||||
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: float, factor: float) -> float:
|
||||
...
|
||||
|
||||
|
||||
T = TypeVar("T", bound=Iterable)
|
||||
|
||||
|
||||
@overload
|
||||
def apply_factor(item: T, factor: float) -> T:
|
||||
...
|
||||
|
||||
|
||||
def apply_factor(item, factor: float):
|
||||
if isinstance(item, (int, float)):
|
||||
return item * factor
|
||||
elif isinstance(item, Iterable):
|
||||
return item.__class__([i * factor for i in item])
|
||||
|
Reference in New Issue
Block a user