一、安装pytesseract:pip install pytesseract
二、安装PIL:pip install PIL
三、安装tesseract-OCR:
下载tesseract-ocr文件并安装,注意有一部要选择自己需要的语言包:
https://github.com/UB-Mannheim/tesseract/wiki
默认只支持英文验证码,如果在安装的时候没有选择additional language,可自行补充其他语言补丁:
https://github.com/tesseract-ocr/tesseract/wiki/Data-Files
下载的补丁解压到tesseract-ocr\tessdata下,或许在:
C:\ProgramFiles\Tesseract-OCR\tessdata
------------------------------------------------------------
注释:
3.02以上版本的tesseract-ocr集成到Cygwin上面了
Cygwin的介绍:
如果要安装,直接点击下一步,中断的时候在
Choose ADownload Site
添加url:
https://cygwin.com/mirrors.html
有些公司有外网阉割,会失败
----------------------------------------------------------------------------------------附录: tesseract的本身用法:
在终端或者命令行中输入
tesseract imagename outputbase [-l lang] [-psmpagesegmode] [configfile...]
例子:
识别myscan.png 到out.txt: |
tesseract myscan.png out |
指定识别数据包(英文加中文简体) |
tesseract myscan.png out -l eng+chi_sim |
使用工具生成pdf(Hocr2PDF) |
tesseract myscan.png out hocr |
直接生成pdf |
tesseract myscan.png out pdf |
我们在pyhton中使用,需要将Tesseract-OCR设置成环境变量
C:\Tesseract-OCR;
常出现的错误:
ImportError: cannot import name mkdtemp:
问题分析:数据包没有更新
pip install -U numpy
WindowsError: [Error 2] :
问题分析:调用tesseract失败
解决方法一:将脚本放在tesseract.exe的文件夹
解决方法二:修改pytesseract.py文件
# CHANGE THIS IF TESSERACT IS NOT IN YOUR PATH, OR IS NAMED DIFFERENTLY
# tesseract_cmd = 'tesseract'
tesseract_cmd = 'C:/Program Files (x86)/Tesseract-OCR/tesseract.exe'
解决办法三:脚本文件制定cmd路径,在开始的时候加一句
pytesseract.pytesseract.tesseract_cmd= '你自己的 tesseract.exe 绝对路径'
例如: 'C:/Program Files (x86)/Tesseract-OCR/tesseract.exe'
IOError: [Errno 2] No such file or directory: 'tesseract.log'
缺少tessdata文件夹,下载的东西不全
pytesseract.pytesseract.TesseractError:(1, 'Error opening data file 。。。。')
问题分析,tesseract.exe无法调用tessdata
解决办法一:增加一条全局变量(有的系统无效)
新建 TESSDATA_PREFIX 路径填写 C:/Program Files (x86)/Tesseract-OCR(你安装的路径)
tessdata_dir_config = '--tessdata-dir "C:\\Tesseract-OCR\\tessdata"'
tex=image_to_string(im,config=tessdata_dir_config)
根据你的位置坐相应的更换
Image.crop((x0,y0,x1,y1))方法可以对图片做裁切。
(x0,y0)是左上角像素值,(x1,y1)是右下角像素值,可以通过 .size 查看这个多图最大像素,也可以用画图,鼠标移动到哪下面就显示到哪里