1. 程式人生 > >記一次 python3 驗證碼識別 出錯過程

記一次 python3 驗證碼識別 出錯過程

需要安裝 

pillow、pytesseract、tesseract-ocr

前面2個可以直接pip安裝,tesseract-ocr需要去下載安裝包(直接網上搜,很多)

安裝完執行下py程式碼

import pytesseract
from PIL import Image
img=Image.open('./ver.jpg')
print (pytesseract.image_to_string(img, lang='chi_sim'))

出現錯誤:  FileNotFoundError: [WinError 2] 系統找不到指定的檔案。

根據網上資料,更改 pytesseract.py 內容

tesseract_cmd = 'tesseract'      改成絕對路徑:

tesseract_cmd = 'C:/Program Files (x86)/Tesseract-OCR/tesseract.exe'


再次執行程式碼

出現錯誤:

pytesseract.pytesseract.TesseractError: (1, 'Error opening data file C:\\Program Files (x86)\\Tesseract-OCR\\chi_sim.traineddata Please make sure the TESSDATA_PREFIX environment variable is set to your "tessdata" directory. Failed loading language \'chi_sim\' Tesseract couldn\'t load any languages! Could not initialize tesseract.')

顯示沒把 TESSDATA 加入環境變數



新增完還是出現上面的錯誤


執行  dos   tesseract是可以執行的

但是在py程式碼裡面就不可以了,什麼原因呢??????

再仔細觀察錯誤,原來少了 chi_sim 的語言包,修改下原始碼

import pytesseract
from PIL import Image

img=Image.open('./ver.jpg')

print (pytesseract.image_to_string(img))


總結:原來的原始碼是從別的網站上拷過來,沒留言沒有 chi_sim 中文語言包,導致出錯,一直以為是 環境變數問題

,下次要仔細點才行