win7,64位系統安裝Tesseract和pytesseract,用python輕鬆實現中文識別,超全攻略!

NO IMAGE

OCR(Optical Character Recognition):光學字元識別,是指對圖片檔案中的文字進行分析識別,獲取的過程。

Tesseract:開源的OCR識別引擎,初期Tesseract引擎由HP實驗室研發,後來貢獻給了開源軟體業,後經由Google進行改進,消除bug,優化,重新發布。當前版本為4.0

step1:

安裝tesseract

從官網下載這個檔案:

tesseract-ocr-setup-4.00.00dev.exe

下載地址:https://github.com/tesseract-ocr/tesseract/wiki/4.0-with-LSTM#400-alpha-for-windows

下載完成直接點選安裝,安裝過程中注意選擇自己想要安裝的語言包

下載完後進行安裝,預設情況下安裝程式會給你配置系統環境變數,以指向安裝目錄(之後可以通過DOS介面在任意目錄執行tesseract)。安裝完成後目錄如下:

tessdata 目錄存放的是語言字型檔檔案,和在命令列介面中可能用到的引數所對應的檔案. 這個安裝程式預設包含了英文字型檔。

如果安裝時候忘記選擇語言庫檔案,可以通過以下網址下載剪下進tessdata 目錄即可。

https://github.com/tesseract-ocr/tesseract/wiki/Data-Files

step2:pytesseract安裝

pip安裝pytesserac

step3:

修改pytesseract.py原檔案

# tesseract_cmd = 'tesseract'###此處需要修修改

tesseract_cmd = 'C:/Program Files (x86)/Tesseract-OCR/tesseract.exe'#改成你對應的路徑

#如果不修改,會報錯:FileNotFoundError: [WinError 2] 系統找不到指定的檔案。

#f = open(output_file_name)##此處需要修修改

f = open(output_file_name, encoding='utf-8')

#如果不修改,會兒報錯:UnicodeDecodeError: 'gbk' codec can't decode byte 0xyy in position xxx: illegal multibyte sequence

修改處截圖:

step4:

測試程式碼

import pytesseract

from PIL import Image

image = Image.open(r'C:\Users\yaohongfu\Desktop\4.png')

vcode = pytesseract.image_to_string(image,lang='chi_sim')

print(vcode)

#coding:utf-8

#Test one pageimport pytesseract

from PIL import Image

def processImage():

image = Image.open(r'C:\Users\yaohongfu\Desktop\4.png')

#背景色處理,可有可無

image = image.point(lambda x: 0 if x < 143 else 255)

newFilePath = 'raw-test.png'

image.save(newFilePath)

content = pytesseract.image_to_string(Image.open(newFilePath),lang='chi_sim')

#中文圖片的話,是lang='chi_sim'

print(content)processImage()

#參考站點

https://github.com/tesseract-ocr/tesseract/wiki/4.0-with-LSTM#400-alpha-for-windows

https://github.com/tesseract-ocr/tesseract/wiki/Data-Files

https://github.com/madmaze/pytesseract

https://github.com/tesseract-ocr/tesseract

https://github.com/tesseract-ocr/tesseract/wiki