python3安裝OCR識別庫tesserocr過程圖解
OCR簡介
OCR,即Optical Character Recognition,光學(xué)字符識別,是指通過掃描字符,然后通過其形狀將其翻譯成電子文本的過程,對應(yīng)圖形驗(yàn)證碼來說,它們都是一些不規(guī)則的字符,這些字符是由字符稍加扭曲變換得到的內(nèi)容,我們可以使用OCR技術(shù)來講其轉(zhuǎn)化為電子文本,然后將結(jié)果提取交給服務(wù)器,便可以達(dá)到自動識別驗(yàn)證碼的過程。
window環(huán)境
環(huán)境材料準(zhǔ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(根據(jù)自己安裝的tesserocr安裝路徑為準(zhǔn)),如下圖。
檢查Tesseract-OCR是否安裝完成,如下圖。
Python3.7加載tesserocr
1、安裝Python的OCR識別庫
pip install Pillow
pip install pytesseract
2、python加載Window的tesserocr應(yīng)用,要修改pytesseract三方庫的pytesseract.py腳本。
打開pytesseract.py,將Window的tesserocr應(yīng)用的tesserocr.exe綁定好。
3、到這里Python的綁定window的tesserocr應(yīng)用已經(jīng)完成。
讀取驗(yàn)證碼圖片
from PIL import Image import pytesseract def read_text(text_path): """ 傳入文本(jpg、png)的絕對路徑,讀取文本 :param text_path: :return: 文本內(nèi)容 """ # 驗(yàn)證碼圖片轉(zhuǎn)字符串 im = Image.open(text_path) # 轉(zhuǎn)化為8bit的黑白圖片 imgry = im.convert('L') # 二值化,采用閾值分割算法,threshold為分割點(diǎn) 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、因?yàn)镺CR讀取不同語言需要加載語言包,因此需要下載簡體中文語言包。
從這個鏈接下載:https://github.com/tesseract-ocr/tessdata,下載紅圈的簡體中文包。然后將此文件放置window的安裝目錄下。如下兩個圖。
現(xiàn)在,我們來讀取如下圖片的中文文本內(nèi)容。
代碼如下:
from PIL import Image import pytesseract def read_text(text_path): """ 傳入文本(jpg、png)的絕對路徑,讀取文本 :param text_path: :return: 文本內(nèi)容 """ # 驗(yàn)證碼圖片轉(zhuǎn)字符串 im = Image.open(text_path) # 轉(zhuǎn)化為8bit的黑白圖片 imgry = im.convert('L') # 二值化,采用閾值分割算法,threshold為分割點(diǎn) threshold = 140 table = [] for j in range(256): if j < threshold: table.append(0) else: table.append(1) out = imgry.point(table, '1') # 識別文本,lang參數(shù)改為chi_sim,其他代碼與上面的讀取驗(yàn)證碼代碼一致。 text = pytesseract.image_to_string(out, lang="chi_sim", config='--psm 6') return text if __name__ == '__main__': print(read_text("d://v7.png"))
以上就是本文的全部內(nèi)容,希望對大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。
- 基于Python實(shí)現(xiàn)對PDF文件的OCR識別
- 初探利用Python進(jìn)行圖文識別(OCR)
- 如何使用Python進(jìn)行OCR識別圖片中的文字
- Python文字截圖識別OCR工具實(shí)例解析
- Python圖像處理之圖片文字識別功能(OCR)
- python實(shí)現(xiàn)百度OCR圖片識別過程解析
- Python基于百度AI實(shí)現(xiàn)OCR文字識別
- Python3實(shí)現(xiàn)騰訊云OCR識別
- Python 實(shí)現(xiàn)任意區(qū)域文字識別(OCR)操作
- 小白學(xué)Python之實(shí)現(xiàn)OCR識別
相關(guān)文章
Django之使用celery和NGINX生成靜態(tài)頁面實(shí)現(xiàn)性能優(yōu)化
這篇文章主要介紹了Django之使用celery和NGINX生成靜態(tài)頁面實(shí)現(xiàn)性能優(yōu)化,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2019-10-10Django + Uwsgi + Nginx 實(shí)現(xiàn)生產(chǎn)環(huán)境部署的方法
Django的部署可以有很多方式,采用nginx+uwsgi的方式是其中比較常見的一種方式。這篇文章主要介紹了Django + Uwsgi + Nginx 實(shí)現(xiàn)生產(chǎn)環(huán)境部署,感興趣的小伙伴們可以參考一下2018-06-06python實(shí)現(xiàn)柵欄加解密 支持密鑰加密
這篇文章主要為大家詳細(xì)介紹了python實(shí)現(xiàn)柵欄加解密,支持密鑰加密,具有一定的參考價值,感興趣的小伙伴們可以參考一下2019-03-03Python函數(shù)值傳遞引用傳遞及形式參數(shù)和實(shí)際參數(shù)的區(qū)別
這篇文章主要介紹了Python函數(shù)值傳遞引用傳遞及形式參數(shù)和實(shí)際參數(shù)的區(qū)別,具有一定的參考價值,需要的小伙伴可以參考一下,希望對你的學(xué)習(xí)有所幫助2022-05-05python保留小數(shù)位的三種實(shí)現(xiàn)方法
本文給大家分享python保留小數(shù)位的三種方法,代碼簡單易懂,非常不錯,具有一定的參考借鑒價值,需要的朋友可以參考下2020-01-01python中class(object)的含義是什么以及用法
這篇文章主要介紹了python中class(object)的含義是什么以及用法說明,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教2023-02-02