Python 验证码识别
这里会用到
安装
安装pytesseract 和 Pillow
pip install pytesseract
pip install Pillow
这里只说winsows系统下的安装linux,在利用pytesseract调用tesseract时遇到以下错误:
FileNotFoundError: [WinError 2] 系统找不到指定的文件。
于是我看了下pytesseract源码,发现有这样的一行
# CHANGE THIS IF TESSERACT IS NOT IN YOUR PATH, OR IS NAMED DIFFERENTLY
tesseract_cmd = 'tesseract'
估计windows系统要手工添加环境变量,所以才产生的问题,于是又将tesseract添加到环境变量Path中,但还是会报错:
pytesseract.pytesseract.TesseractError: (1, 'Error opening data file \\Program Files (x86)\\Tesseract-OCR\\eng.traineddata')
这个是eng.traineddata文件路径有误才会出现的错误。
解决办法:
先查看tesseract有没有这个语言包,有CMD中输入命令:
tesseract --list-langs
结果:
List of available languages (2):
eng
osd
然后再查看然后再google下的,发现还是tesseract的环境变量的问题,找到了下面这一句话
Please make sure the TESSDATA_PREFIX environment variableisset to the parent directory of your"tessdata"directory.
于是新建的一个TESSDATA_PREFIX指定"tessdata"的上级目录也就是"C:\Program Files (x86)\Tesseract-OCR"
windows的安装也完成。
先用一个简单的验证码测试一下:
from PIL import Image
import pytesseract
result = pytesseract.image_to_string(Image.open(r'F:\pachong\PIN\PIN_ws\692.jpg',"r"), lang='eng')
print(result)