python3安裝OCR識別庫tesserocr過程圖解
OCR簡介
OCR,即Optical Character Recognition,光學字元識別,是指通過掃描字元,然後通過其形狀將其翻譯成電子文字的過程,對應圖形驗證碼來說,它們都是一些不規則的字元,這些字元是由字元稍加扭曲變換得到的內容,我們可以使用OCR技術來講其轉化為電子文字,然後將結果提取交給伺服器,便可以達到自動識別驗證碼的過程。
window環境
環境材料準備
- Window10
- Python-3.7.3.tgz
- tesserocr安裝包
安裝tesserocr
1、開啟連結,https://digi.bib.uni-mannheim.de/tesseract/,見下圖。
下載最新版的tesseract-ocr-w64-setup-v5.0.0.20190623.exe,然後安裝,本人直接安裝在C盤目錄下。安裝完畢後,如下圖。
配置環境變數,有兩個步驟。
在系統變數裡,修改path,如下圖。
在系統變數裡,建立一個新的變數名為:TESSDATA_PREFIX,值為:C:\Program Files\Tesseract-OCR\tessdata(根據自己安裝的tesserocr安裝路徑為準),如下圖。
檢查Tesseract-OCR是否安裝完成,如下圖。
Python3.7載入tesserocr
1、安裝Python的OCR識別庫
pip install Pillow
pip install pytesseract
2、python載入Window的tesserocr應用,要修改pytesseract三方庫的pytesseract.py指令碼。
開啟pytesseract.py,將Window的tesserocr應用的tesserocr.exe繫結好。
3、到這裡Python的繫結window的tesserocr應用已經完成。
讀取驗證碼圖片
from PIL import Image import pytesseract def read_text(text_path): """ 傳入文字(jpg、png)的絕對路徑,讀取文字 :param text_path: :return: 文字內容 """ # 驗證碼圖片轉字串 im = Image.open(text_path) # 轉化為8bit的黑白圖片 imgry = im.convert('L') # 二值化,採用閾值分割演算法,threshold為分割點 threshold = 140 table = [] for j in range(256): if j < threshold: table.append(0) else: table.append(1) out = imgry.point(table,'1') # 識別文字 text = pytesseract.image_to_string(out,lang="eng",config='--psm 6') return text if __name__ == '__main__': print(read_text("d://v3.png"))
輸出:
讀取中文文字圖片
1、因為OCR讀取不同語言需要載入語言包,因此需要下載簡體中文語言包。
從這個連結下載:https://github.com/tesseract-ocr/tessdata,下載紅圈的簡體中文包。然後將此檔案放置window的安裝目錄下。如下兩個圖。
現在,我們來讀取如下圖片的中文文字內容。
程式碼如下:
from PIL import Image import pytesseract def read_text(text_path): """ 傳入文字(jpg、png)的絕對路徑,'1') # 識別文字,lang引數改為chi_sim,其他程式碼與上面的讀取驗證碼程式碼一致。 text = pytesseract.image_to_string(out,lang="chi_sim",config='--psm 6') return text if __name__ == '__main__': print(read_text("d://v7.png"))
以上就是本文的全部內容,希望對大家的學習有所幫助,也希望大家多多支援我們。