Python3.x:如何識別圖片上的文字

Python3.x:如何識別圖片上的文字

安裝pytesseract庫,必須先安裝其依賴的PIL及tesseract-ocr,其中PIL爲圖像處理庫,然後面的tesseract-ocr則爲google的ocr識別引擎;python

其中PIL能夠用pillow來替代;windows

1、安裝識別引擎tesseract-ocr

下載地址(解壓安裝):https://sourceforge.net/projects/tesseract-ocr/測試

  這裏須要注意這一段話:Currently, there is no official Windows installer for newer versions.意思就是官方不提供最新版windows平臺安裝包,只有相對略老的3.02.02版本,其下載地址:https://sourceforge.net/projects/tesseract-ocr-alt/files/google

  

環境變量配置(path):D:\Program Files (x86)\Tesseract-OCRspa

設置環境變量:TESSDATA_PREFIX=D:\Program Files (x86)\Tesseract-OCR\tessdata.net

打開DOS界面,輸入tesseract,以下圖則標示安裝成功:3d

測試識別功能:code

切換到圖片的目錄:cd \d E:\pydevworkspaces,而後輸入tesseract tttt.png result(識別tttt.png結果寫入result.txt文件中,輸出文件在同級目錄下):blog

tttt.png圖片內容:圖片

result.txt文件內容:

識別率貌似不高,第三個數字就識別出錯了;

「tesseract OCR 訓練樣本」 --能夠提升識別率;

說明安裝成功;

tesseract語法:

tesseract code.jpg result  -l chi_sim -psm 7 nobatch

-l chi_sim 表示用簡體中文字庫(須要下載中文字庫文件,解壓後,存放到tessdata目錄下去,字庫文件擴展名爲  .raineddata 簡體中文字庫文件名爲:  chi_sim.traineddata)

-psm 7 表示告訴tesseract code.jpg圖片是一行文本  這個參數能夠減小識別錯誤率.  默認爲 3

configfile 參數值爲tessdata\configs 和  tessdata\tessconfigs 目錄下的文件名

2、安裝第三方庫(pytesseract、pillow)

#pytesseract安裝 
pip install pytesseract

#Pillow 安裝 
pip install pillow

注意: 修改 pytesseract 的路徑。

(1)路徑:D:\Python36\Lib\site-packages\pytesseract\pytesseract.py

(2)修改內容:tesseract_cmd = 'D:/Program Files (x86)/Tesseract-OCR/tesseract.exe'

 

3、實例代碼

# python3
# author lizm
# datetime 2018-01-26 12:00:00
'''
    Demo:pytesseract解析圖片上的文字
'''
import pytesseract
from PIL import Image
# 指定路徑
# pytesseract.pytesseract.tesseract_cmd = 'C:/Program Files/Tesseract-ORC/tesseract'
image = Image.open('tttt.png')
code = pytesseract.image_to_string(image)
print(code)

 4、識別中文

1,增長中文庫:chi_sim.traineddata

2,將中文庫拷貝到:D:\Program Files (x86)\Tesseract-OCR\tessdata目錄下

3,代碼示例:

# python3
# author lizm
# datetime 2018-09-21 12:00:00
'''
    Demo:pytesseract解析圖片上的中文文字
'''
import pytesseract
from PIL import Image
code = pytesseract.image_to_string(Image.open('8.jpg'),lang='chi_sim') 
print(code)

注意:chi_sim.traineddata必須和安裝的tessdata的版本一致,才能生效。

相關文章
相關標籤/搜索