欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

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

 更新時間:2020年04月02日 09:20:49   作者:廣州螢火蟲  
這篇文章主要介紹了python3安裝OCR識別庫tesserocr過程圖解,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友可以參考下

OCR簡介

OCR,即Optical Character Recognition,光學字符識別,是指通過掃描字符,然后通過其形狀將其翻譯成電子文本的過程,對應圖形驗證碼來說,它們都是一些不規(guī)則的字符,這些字符是由字符稍加扭曲變換得到的內容,我們可以使用OCR技術來講其轉化為電子文本,然后將結果提取交給服務器,便可以達到自動識別驗證碼的過程。

window環(huán)境

環(huán)境材料準備

  • 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盤目錄下。安裝完畢后,如下圖。


配置環(huán)境變量,有兩個步驟。

在系統(tǒng)變量里,修改path,如下圖。


在系統(tǒng)變量里,創(chuàng)建一個新的變量名為: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)的絕對路徑,讀取文本
  :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')
  # 識別文本,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"))

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

相關文章

  • python縮進區(qū)別分析

    python縮進區(qū)別分析

    這篇文章主要介紹了python縮進區(qū)別分析,需要的朋友可以參考下
    2014-02-02
  • python如何從文件讀取數據及解析

    python如何從文件讀取數據及解析

    這篇文章主要介紹了python如何從文件讀取數據,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友可以參考下
    2019-09-09
  • Django之使用celery和NGINX生成靜態(tài)頁面實現性能優(yōu)化

    Django之使用celery和NGINX生成靜態(tài)頁面實現性能優(yōu)化

    這篇文章主要介紹了Django之使用celery和NGINX生成靜態(tài)頁面實現性能優(yōu)化,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧
    2019-10-10
  • 如何用Python合并lmdb文件

    如何用Python合并lmdb文件

    這篇文章主要為大家詳細介紹了如何用Python合并lmdb文件,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2018-07-07
  • Django + Uwsgi + Nginx 實現生產環(huán)境部署的方法

    Django + Uwsgi + Nginx 實現生產環(huán)境部署的方法

    Django的部署可以有很多方式,采用nginx+uwsgi的方式是其中比較常見的一種方式。這篇文章主要介紹了Django + Uwsgi + Nginx 實現生產環(huán)境部署,感興趣的小伙伴們可以參考一下
    2018-06-06
  • python實現柵欄加解密 支持密鑰加密

    python實現柵欄加解密 支持密鑰加密

    這篇文章主要為大家詳細介紹了python實現柵欄加解密,支持密鑰加密,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2019-03-03
  • Python函數值傳遞引用傳遞及形式參數和實際參數的區(qū)別

    Python函數值傳遞引用傳遞及形式參數和實際參數的區(qū)別

    這篇文章主要介紹了Python函數值傳遞引用傳遞及形式參數和實際參數的區(qū)別,具有一定的參考價值,需要的小伙伴可以參考一下,希望對你的學習有所幫助
    2022-05-05
  • python保留小數位的三種實現方法

    python保留小數位的三種實現方法

    本文給大家分享python保留小數位的三種方法,代碼簡單易懂,非常不錯,具有一定的參考借鑒價值,需要的朋友可以參考下
    2020-01-01
  • Python使用configparser庫讀取配置文件

    Python使用configparser庫讀取配置文件

    這篇文章主要介紹了Python使用configparser庫讀取配置文件,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友可以參考下
    2020-02-02
  • python中class(object)的含義是什么以及用法

    python中class(object)的含義是什么以及用法

    這篇文章主要介紹了python中class(object)的含義是什么以及用法說明,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教
    2023-02-02

最新評論