如何无需保存和打开图片即可使用mss与pytesseract?
优化后的无文件读写版本代码
没问题!咱们直接跳过保存图片到本地这一步,直接把mss捕获的图像数据传给Tesseract处理,这样既高效又能满足你的需求。修改后的代码如下:
from PIL import Image import pytesseract import mss with mss.mss() as sct: # 定义要捕获的屏幕区域 monitor = {'top': 171, 'left': 1090, 'width': 40, 'height': 17} # 直接捕获目标区域的图像数据 sct_img = sct.grab(monitor) # 将mss的截图数据直接转换为PIL Image对象,无需保存到本地文件 pil_img = Image.frombytes('RGB', sct_img.size, sct_img.rgb) # 直接使用PIL图像进行OCR识别 text = pytesseract.image_to_string(pil_img) print(text)
关键改动说明:
- 移除了所有本地文件读写相关的代码(比如
mss.tools.to_png和Image.open('capture.png')),避免了不必要的磁盘IO操作 - 利用
Image.frombytes()方法,直接把mss捕获的RGB数据和尺寸转换成PIL图像对象,实现数据在内存中的直接流转 - 整个流程完全在内存中完成,速度更快,也不会生成临时文件
内容的提问来源于stack exchange,提问作者Siewdass Sf
相关产品推荐
相关产品推荐

