ocr.py 1.1 KB

123456789101112131415161718192021222324252627282930313233343536
  1. import importlib
  2. def capture_and_ocr(region):
  3. # 动态导入所需库
  4. Image = importlib.import_module('PIL.Image')
  5. ImageGrab = importlib.import_module('PIL.ImageGrab')
  6. np = importlib.import_module('numpy')
  7. PaddleOCR = importlib.import_module('paddleocr').PaddleOCR
  8. try:
  9. # 读取屏幕截图
  10. screenshot = ImageGrab.grab(bbox=region)
  11. # 将 PIL.Image 转换为 numpy 数组
  12. screenshot_np = np.array(screenshot)
  13. # 初始化OCR(只在需要时创建)
  14. ocr = PaddleOCR(use_angle_cls=True) # 支持中文
  15. result = ocr.ocr(screenshot_np, cls=True)
  16. # 提取每个识别结果的文本部分
  17. final_texts = [line[1][0] for line in result[0]]
  18. return final_texts
  19. finally:
  20. # 清理内存
  21. del Image, ImageGrab, np, PaddleOCR, ocr, screenshot, screenshot_np
  22. if 'result' in locals():
  23. del result
  24. if 'final_texts' in locals():
  25. del final_texts
  26. # 强制垃圾回收
  27. import gc
  28. gc.collect()
  29. return ""