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