From e0009d0836f307c47b11f137477825475fa60036 Mon Sep 17 00:00:00 2001 From: 283375 Date: Fri, 23 Jun 2023 15:03:35 +0800 Subject: [PATCH] fix: unicode character in image path --- src/arcaea_offline_ocr/recognize.py | 3 ++- src/arcaea_offline_ocr/utils.py | 9 +++++++++ 2 files changed, 11 insertions(+), 1 deletion(-) create mode 100644 src/arcaea_offline_ocr/utils.py diff --git a/src/arcaea_offline_ocr/recognize.py b/src/arcaea_offline_ocr/recognize.py index 0caa66e..6873bc2 100644 --- a/src/arcaea_offline_ocr/recognize.py +++ b/src/arcaea_offline_ocr/recognize.py @@ -7,6 +7,7 @@ from .crop import * from .device import Device from .mask import * from .ocr import * +from .utils import imread_unicode __all__ = [ "process_digits_ocr_img", @@ -72,7 +73,7 @@ class RecognizeResult: def recognize(img_filename: str, device: Device): - img = imread(img_filename) + img = imread_unicode(img_filename) img_hsv = cvtColor(img, COLOR_BGR2HSV) pure_roi = crop_to_pure(img_hsv, device) diff --git a/src/arcaea_offline_ocr/utils.py b/src/arcaea_offline_ocr/utils.py new file mode 100644 index 0000000..aa4a38c --- /dev/null +++ b/src/arcaea_offline_ocr/utils.py @@ -0,0 +1,9 @@ +from cv2 import IMREAD_UNCHANGED, Mat, imdecode +from numpy import fromfile as np_fromfile +from numpy import uint8 + + +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)