tesseract_OCR驗證碼識別技術(python)

一、安裝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    查看這個多圖最大像素,也可以用畫圖,鼠標移動到哪下面就顯示到哪裏




發佈了105 篇原創文章 · 獲贊 82 · 訪問量 18萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章