Loading modules/ocr/__init__.py +115 −103 Original line number Diff line number Diff line Loading @@ -10,7 +10,7 @@ from utils.registry import Registry OCR = Registry('OCR') register_OCR = OCR.register_module from ..base import BaseModule, DEFAULT_DEVICE, DEVICE_SELECTOR from ..base import BaseModule, DEFAULT_DEVICE, DEVICE_SELECTOR, LOGGER class OCRBase(BaseModule): Loading Loading @@ -247,6 +247,10 @@ import platform if platform.mac_ver()[0] >= '10.15': from .macos_ocr import get_supported_languages APPLEVISIONFRAMEWORK = None macos_ocr_supported_languages = get_supported_languages() if len(macos_ocr_supported_languages) > 0: @register_OCR('macos_ocr') class OCRApple(OCRBase): params = { Loading Loading @@ -305,12 +309,17 @@ if platform.mac_ver()[0] >= '10.15': self.confidence = self.params['confidence_level'] self.model.min_confidence = self.confidence else: LOGGER.warning(f'No supported language packs found for MacOS, MacOS OCR will be unavailable.') if platform.system() == 'Windows' and platform.version() >= '10.0.10240.0': from .windows_ocr import get_supported_language_packs from .windows_ocr import winocr_available_recognizer_languages languages_display_name = [lang.display_name for lang in get_supported_language_packs()] languages_tag = [lang.language_tag for lang in get_supported_language_packs()] if len(winocr_available_recognizer_languages) > 0: languages_display_name = [lang.display_name for lang in winocr_available_recognizer_languages] languages_tag = [lang.language_tag for lang in winocr_available_recognizer_languages] WINDOWSOCRENGINE = None @register_OCR('windows_ocr') class OCRWindows(OCRBase): Loading Loading @@ -354,3 +363,6 @@ if platform.system() == 'Windows' and platform.version() >= '10.0.10240.0': def updateParam(self, param_key: str, param_content): super().updateParam(param_key, param_content) self.engine.lang = self.get_engine_lang() else: LOGGER.warning(f'No supported language packs found for windows, Windows OCR will be unavailable.') No newline at end of file modules/ocr/windows_ocr.py +10 −7 Original line number Diff line number Diff line Loading @@ -19,8 +19,11 @@ def ocr(byte, width, height, lang='en'): async def coroutine(awaitable): return await awaitable winocr_available_recognizer_languages = get_supported_language_packs() if len(winocr_available_recognizer_languages) > 0: class WindowsOCR: lang = get_supported_language_packs()[0].language_tag lang = winocr_available_recognizer_languages[0].language_tag def __call__(self, img: np.ndarray) -> str: img = cv2.cvtColor(img, cv2.COLOR_BGR2RGBA) Loading Loading
modules/ocr/__init__.py +115 −103 Original line number Diff line number Diff line Loading @@ -10,7 +10,7 @@ from utils.registry import Registry OCR = Registry('OCR') register_OCR = OCR.register_module from ..base import BaseModule, DEFAULT_DEVICE, DEVICE_SELECTOR from ..base import BaseModule, DEFAULT_DEVICE, DEVICE_SELECTOR, LOGGER class OCRBase(BaseModule): Loading Loading @@ -247,6 +247,10 @@ import platform if platform.mac_ver()[0] >= '10.15': from .macos_ocr import get_supported_languages APPLEVISIONFRAMEWORK = None macos_ocr_supported_languages = get_supported_languages() if len(macos_ocr_supported_languages) > 0: @register_OCR('macos_ocr') class OCRApple(OCRBase): params = { Loading Loading @@ -305,12 +309,17 @@ if platform.mac_ver()[0] >= '10.15': self.confidence = self.params['confidence_level'] self.model.min_confidence = self.confidence else: LOGGER.warning(f'No supported language packs found for MacOS, MacOS OCR will be unavailable.') if platform.system() == 'Windows' and platform.version() >= '10.0.10240.0': from .windows_ocr import get_supported_language_packs from .windows_ocr import winocr_available_recognizer_languages languages_display_name = [lang.display_name for lang in get_supported_language_packs()] languages_tag = [lang.language_tag for lang in get_supported_language_packs()] if len(winocr_available_recognizer_languages) > 0: languages_display_name = [lang.display_name for lang in winocr_available_recognizer_languages] languages_tag = [lang.language_tag for lang in winocr_available_recognizer_languages] WINDOWSOCRENGINE = None @register_OCR('windows_ocr') class OCRWindows(OCRBase): Loading Loading @@ -354,3 +363,6 @@ if platform.system() == 'Windows' and platform.version() >= '10.0.10240.0': def updateParam(self, param_key: str, param_content): super().updateParam(param_key, param_content) self.engine.lang = self.get_engine_lang() else: LOGGER.warning(f'No supported language packs found for windows, Windows OCR will be unavailable.') No newline at end of file
modules/ocr/windows_ocr.py +10 −7 Original line number Diff line number Diff line Loading @@ -19,8 +19,11 @@ def ocr(byte, width, height, lang='en'): async def coroutine(awaitable): return await awaitable winocr_available_recognizer_languages = get_supported_language_packs() if len(winocr_available_recognizer_languages) > 0: class WindowsOCR: lang = get_supported_language_packs()[0].language_tag lang = winocr_available_recognizer_languages[0].language_tag def __call__(self, img: np.ndarray) -> str: img = cv2.cvtColor(img, cv2.COLOR_BGR2RGBA) Loading