原理:直接用python實現(xiàn)驗證碼識別有些困難买决,但是可以通過第三方軟件的輔助來實現(xiàn)咏窿,就是Tesseract ORC.下載地址:https://github.com/tesseract-ocr/tesseract/wiki/4.0-with-LSTM#400-alpha-for-windows
下載完成后安裝tips:
可以選擇多個包乞巧,包括數(shù)字,英語埠褪,中文萝挤,其他亂七八糟的就別選了钮科,下載訓練包要很久付材。
如果是默認安裝的泛范,安裝完成后Tesseract ORC位于C:\Program Files (x86)\Tesseract-OCR
進入環(huán)境變量配置需忿,分別將上述路徑配置到path環(huán)境變量和新建的系統(tǒng)變量TESSDATA_PREFIX
最后拖叙,進入命令行模式氓润,輸入tesseract –v能正確顯示版本信息,表示環(huán)境變量配置正確薯鳍,否則自行檢查環(huán)境變量旺芽。
命令行中進行識別的命令為:
tesseract img_path output_path –l eng –psm 7
其中img_path 為圖片保存路徑,output_path為識別后內(nèi)容保存txt文件路徑辐啄,不需要txt后綴
至此,外部軟件Tesseract ORC已經(jīng)安裝完畢运嗜,可以知道壶辜,當前是有輸入—驗證碼保存路徑,有輸出結(jié)果txt文件担租,那么只需要讀取txt文件內(nèi)容即可獲得圖片識別結(jié)果了砸民。
以下是一個封裝識別方法,在安裝好Tesseract ORC的情況下使用即可奋救。
安裝pytesseract庫及PIL庫(pip install即可)
pytesseract作用是提供接口處理圖片文字識別岭参。
PIL作用是打開圖片文件,并進行灰度尝艘、二值化處理演侯。
其中tesseract_cmd為Tesseract –ORC目錄,要根據(jù)安裝路徑配置
務必保證環(huán)境變量中有配置字符識別庫TESSDATA_PREFIX
方法傳入圖片路徑即可獲得驗證碼內(nèi)容(這種只能識別簡單的驗證碼背亥,如白底少干擾秒际,類似這種還需要更加復雜的圖片顏色處理才能識別,或者下載特定字符訓練庫)
在UI****自動化中實現(xiàn)驗證碼識別:
兩種方法:1狡汉、通過解析驗證碼圖片URL使用requests庫下載圖片進行處理
2娄徊、通過截圖,獲取驗證碼所在位置截圖盾戴,保存后進行處理寄锐。
結(jié)語:識別圖片文字有時候需要對圖片的灰度、二值化處理比較多尖啡,這里不做展開橄仆,簡單的驗證碼使用這個方法就可以識別了。現(xiàn)在有些驗證碼比較喪心病狂決然是gif文件可婶,使用這個方法識別不了沿癞,還是找開發(fā)注釋比較靠譜。