import importlib
import os
os.environ['FLAGS_log_level'] = '20'  # 20=INFO, 30=WARNING, 40=ERROR

def capture_and_ocr(region):
    # 动态导入所需库
    Image = importlib.import_module('PIL.Image')
    ImageGrab = importlib.import_module('PIL.ImageGrab')
    np = importlib.import_module('numpy')
    PaddleOCR = importlib.import_module('paddleocr').PaddleOCR

    try:
        # 读取屏幕截图
        screenshot = ImageGrab.grab(bbox=region)
        # 将 PIL.Image 转换为 numpy 数组
        screenshot_np = np.array(screenshot)

        # 初始化OCR（只在需要时创建）
        ocr = PaddleOCR(use_angle_cls=True)  # 支持中文
        result = ocr.ocr(screenshot_np, cls=True)
        
        # 提取每个识别结果的文本部分
        final_texts = [line[1][0] for line in result[0]]
        return final_texts
        
    finally:
        # 清理内存
        del Image, ImageGrab, np, PaddleOCR, ocr, screenshot, screenshot_np
        if 'result' in locals():
            del result
        if 'final_texts' in locals():
            del final_texts
        
        # 强制垃圾回收
        import gc
        gc.collect()