使用Tesseract模块,识别验证码
Tesseract:开源的OCR识别引擎,初期Tesseract引擎由HP实验室研发,后来贡献给了开源软件业,后经由Google进行改进,消除bug,优化,重新发布。
一、安装
github地址: https://github.com/tesseract-ocr/tesseract
windows:
只有非官方版本 https://github.com/tesseract-ocr/tesseract/wiki
二、测试
安装好后,打开命令终端,输入:tesseract -v,可以看到版本信息
建议先设置好环境变量
执行以下命令,结果在文件output_1里面
使用python接口查询(需要先设置tesseract的环境变量)
注:pytesseract只是一个接口,实际查询需要服务
from PIL import Image import pytesseract im = Image.open("../resource/test.png") text = pytesseract.image_to_string((im), lang=chi_sim) print(text)
三、遇到的问题
1.FileNotFoundError: [WinError 2] 系统找不到指定的文件
解决方法:
方法1[推荐]: 将tesseract.exe添加到环境变量PATH中,
例如: D:Tesseract-OCR,默认路径为C:Program Files (x86)Tesseract-OCR
注意: 为了使环境变量生效,需要关闭cmd窗口或是关闭pycharm等ide重新启动
方法2: 修改pytesseract.py文件,指定tesseract.exe安装路径
# CHANGE THIS IF TESSERACT IS NOT IN YOUR PATH, OR IS NAMED DIFFERENTLY tesseract_cmd = C:Program Files (x86)Tesseract-OCR esseract.exe‘
方法3: 在实际运行代码中指定
pytesseract.pytesseract.tesseract_cmd = D:Tesseract-OCR esseract.exe
2.pytesseract.pytesseract.TesseractError: (1, 'Error opening data file Tesseract-OCR essdata/eng.traineddata')
解决方法:
方法1[推荐]:
将tessdata目录的上级目录所在路径(默认为tesseract-ocr安装目录)添加至TESSDATA_PREFIX环境变量中
例如: C:Program Files (x86)Tesseract-OCR
Please make sure the TESSDATA_PREFIX environment variable is set to the parent directory of your "tessdata" directory.
方法2: 在.py文件配置中指定tessdata-dir
tessdata_dir_config = --tessdata-dir "D:Tesseract-OCR essdata" # tessdata_dir_config = --tessdata-dir "C:Program Files (x86)Tesseract-OCR essdata" pytesseract.image_to_string(image, config=tessdata_dir_config)