tesseract_OCR验证码识别技术(python)

时间:2021-01-06 09:02:42

一、安装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的介绍:

https://cygwin.com/

如果要安装,直接点击下一步,中断的时候在

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 路径

            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    查看这个多图最大像素,也可以用画图,鼠标移动到哪下面就显示到哪里