windows平台下使用python对屏幕进行文字识别
可行性分析
-
在 Windows 平台下使用 Python 进行文字识别是可行的。Python 提供了许多文字识别库,如 Tesseract OCR、OpenCV 和 Microsoft Azure Cognitive Services 等。其中,Tesseract OCR 是最常用的文字识别库之一,支持多种语言和多个平台。OpenCV 则是一个用于计算机视觉和机器学习的图像处理库,可以用来处理和分析屏幕截图。Microsoft Azure Cognitive Services 则提供了一整套人工智能 API,包括 OCR 和计算机视觉服务等。
-
因此,如果您想进行屏幕文字识别,可以使用 Python 和相关库来实现。可以使用 Python 的 PIL 库或者 PyAutoGUI 库来进行屏幕截图,然后使用 Tesseract OCR 或者 Azure Cognitive Services 进行文字识别。
-
下面介绍使用python的PyAutoGUI库对屏幕进行截屏,使用Tesseract OCR对截图进行文字识别的方法。
工具介绍
-
要实现windows平台下使用python对屏幕进行文字识别的功能,需要介绍以下几个工具:
两个python库
-
pyautogui:这是Python的一个自动操作库,用于 Python 进行屏幕截图。
-
Pytesseract:这是Python的一个OCR库,可以与Tesseract-OCR结合使用,使您可以直接从Python中调用OCR引擎。
一个OCR引擎
-
Tesseract-OCR:这是一个开源的OCR引擎,可以用于从图像中提取文字。
环境安装
安装python
-
安装 Python的windows版本:在官网 https://www.python.org/downloads/ 上下载并安装 Python。
-
将python的安装目录添加到系统环境变量。
-
测试python安装成功:打开cmd,输入python,有版本号输出证明python安装成功。
C:\Users\user>python Python 3.11.2 (tags/v3.11.2:878ead1, Feb 7 2023, 16:38:35) [MSC v.1934 64 bit (AMD64)] on win32 Type "help", "copyright", "credits" or "license" for more information. >>>
安装PyAutoGUI
-
安装python时会自动安装好pip工具,在cmd中输入以下命令安装PyAutoGUI。
-
PyAutoGUI需要使用GUI界面(例如Windows或macOS)才能正常工作。
pip install pyautogui
安装pytesseract
-
在cmd中输入以下命令安装pytesseract
pip install pytesseract
安装Tesseract-OCR
-
下载并安装Tesseract OCR引擎,下载适合自己电脑的版本。
-
下载链接,注意尽量不要下载带dev,alpha,beta等版本,这些版本不稳定,也可能是测试版本。建议下载最新稳定版本。
方法一:https://github.com/UB-Mannheim/tesseract/wiki 方法二:https://digi.bib.uni-mannheim.de/tesseract/ 方法三:https://github.com/tesseract-ocr/tesseract
-
安装tesseract-ocr.exe时可以先不选择语言包,因为这会使下载过程比较缓慢。
-
安装完毕后,将安装目录添加到系统的环境变量。
-
检查是否安装成功:打开cmd窗口,输入tesseract -v查看版本号,输入tesseract --list-langs查看支持的语言包。
C:\Users\user>tesseract -v tesseract v5.3.0.20221222 leptonica-1.78.0 libgif 5.1.4 : libjpeg 8d (libjpeg-turbo 1.5.3) : libpng 1.6.34 : libtiff 4.0.9 : zlib 1.2.11 : libwebp 0.6.1 : libopenjp2 2.3.0 Found AVX2 Found AVX Found FMA Found SSE4.1 Found libarchive 3.5.0 zlib/1.2.11 liblzma/5.2.3 bz2lib/1.0.6 liblz4/1.7.5 libzstd/1.4.5 Found libcurl/7.77.0-DEV Schannel zlib/1.2.11 zstd/1.4.5 libidn2/2.0.4 nghttp2/1.31.0
C:\Users\user>tesseract --list-langs List of available languages in "E:\Tesseract-OCR/tessdata/" (2): eng osd
-
如果自己下载了其他的语言包,可以将语言包放到Tesseract-OCR安装目录的tessdata路径下,并使用tesseract --list-langs命令查询是否新增了支持的语言包。
功能实现
-
现在,我们可以开始编写代码了,实现在windows平台下使用python语言对当前屏幕进行文字识别。
英文识别
-
由于Tesseract-OCR安装好后,默认已经支持英文和数字的语言包了,所以先简单通过英文和数字测试以下识别效果,
-
先准备一张图:004.png

import pytesseract
from PIL import Image
# 使用 Tesseract OCR 识别文本信息
im = Image.open('./004.png')
text = pytesseract.image_to_string(im)
print(text)
#运行该程序打印输出为:Image
混合识别
-
要对电脑屏幕截图进行文字识别的话,势必涉及到识别中英文的问题,需要先安装中文的语言包,否则无法识别。
import pytesseract
import pyautogui
from PIL import Image
# 截取整个屏幕
screenshot = pyautogui.screenshot()
# 保存截图为临时文件
screenshot.save('tmp.png')
# 使用 Tesseract OCR 识别文本信息
im = Image.open('tmp.png')
text = pytesseract.image_to_string(im)
# 寻找 "start" 字符串
if "start" in text:
print("Found 'start' string")
#使用utf-8编码避免打印乱码
print (text.encode("utf-8"))
更多推荐

所有评论(0)