1. 程式人生 > 程式設計 >python3安裝OCR識別庫tesserocr過程圖解

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/,見下圖。

python3安裝OCR識別庫tesserocr過程圖解

下載最新版的tesseract-ocr-w64-setup-v5.0.0.20190623.exe,然後安裝,本人直接安裝在C盤目錄下。安裝完畢後,如下圖。

python3安裝OCR識別庫tesserocr過程圖解

配置環境變數,有兩個步驟。

在系統變數裡,修改path,如下圖。

python3安裝OCR識別庫tesserocr過程圖解

在系統變數裡,建立一個新的變數名為:TESSDATA_PREFIX,值為:C:\Program Files\Tesseract-OCR\tessdata(根據自己安裝的tesserocr安裝路徑為準),如下圖。

python3安裝OCR識別庫tesserocr過程圖解

檢查Tesseract-OCR是否安裝完成,如下圖。

python3安裝OCR識別庫tesserocr過程圖解

Python3.7載入tesserocr

1、安裝Python的OCR識別庫

pip install Pillow

pip install pytesseract

2、python載入Window的tesserocr應用,要修改pytesseract三方庫的pytesseract.py指令碼。
python3安裝OCR識別庫tesserocr過程圖解

開啟pytesseract.py,將Window的tesserocr應用的tesserocr.exe繫結好。

python3安裝OCR識別庫tesserocr過程圖解

3、到這裡Python的繫結window的tesserocr應用已經完成。

讀取驗證碼圖片

python3安裝OCR識別庫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"))

輸出:

python3安裝OCR識別庫tesserocr過程圖解

讀取中文文字圖片

1、因為OCR讀取不同語言需要載入語言包,因此需要下載簡體中文語言包。
從這個連結下載:https://github.com/tesseract-ocr/tessdata,下載紅圈的簡體中文包。然後將此檔案放置window的安裝目錄下。如下兩個圖。
python3安裝OCR識別庫tesserocr過程圖解
python3安裝OCR識別庫tesserocr過程圖解

現在,我們來讀取如下圖片的中文文字內容。

python3安裝OCR識別庫tesserocr過程圖解

程式碼如下:

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"))

python3安裝OCR識別庫tesserocr過程圖解

以上就是本文的全部內容,希望對大家的學習有所幫助,也希望大家多多支援我們。