官方鏈接:
官方網站:https://github.com/tesseract-ocr/tesseract
官方文檔:https://github.com/tesseract-ocr/tessdoc
語言包地址:https://github.com/tesseract-ocr/tessdata
下載地址:https://digi.bib.uni-mannheim.de/tesseract/
一、介紹
Tesseract,一款由HP實驗室開發(fā)由Google維護的開源OCR(Optical Character Recognition , 光學字符識別)引擎,與Microsoft Office Document Imaging(MODI)相比,我們可以不斷的訓練的庫,使圖像轉換文本的能力不斷增強;如果團隊深度需要,還可以以它為模板,開發(fā)出符合自身需求的OCR引擎。
二、安裝過程
1、 下載地址在本文章頂部,注意盡量不要下載帶dev,alpha,beta等版本,這些版本不穩(wěn)定,也可能是測試版本。建議下載最新穩(wěn)定版本:
tesseract-ocr-w64-setup-v5.0.0.20190623.exe。
2、 安裝過程可以附帶選擇要安裝的語言包,如下簡體中文,之后自動會從服務器下載該語言包下來。(這里不建議勾選下載語言包,因為速度太慢了,教程后面會介紹怎么拓展語言包。如果有開梯子的話,請忽略括號內這段話)

3、 設置環(huán)境變量

4、檢查查看是否安裝成功

三、拓展語言包
在文章頂部找到語言包地址的鏈接,下載需要的的語言包,如下圖,紅框內為中文簡體語言包,下載后將該包直接放在程序安裝目錄的tessdata文件夾里面即可。

命令行使用 tesseract --list-langs命令可查看當前軟件支持的語言:

四、python實例

#!/usr/bin/env python3
# -*- coding: utf-8 -*-
__author__ = '孫思鍇'
import pytesseract
from PIL import Image
file = r"E:\桌面\靜夜思.png"
# 建議圖像識別前,先對圖像進行灰度化和 二值化,以提高文本識別率
# image = Image.open(file)
# Img = image.convert('L') # 灰度化
# #自定義灰度界限,這里可以大于這個值為黑色,小于這個值為白色。threshold可根據實際情況進行調整(最大可為255)。
# threshold = 180
# table = []
# for i in range(256):
# if i < threshold:
# table.append(0)
# else:
# table.append(1)
# photo = Img.point(table, '1') #圖片二值化
# #保存處理好的圖片
# photo.save(newfile)
image = Image.open(file)
# 解析圖片,lang='chi_sim'表示識別簡體中文,默認為English
# 如果是只識別數字,可再加上參數config='--psm 6 --oem 3 -c tessedit_char_whitelist=0123456789'
content = pytesseract.image_to_string(image, lang='chi_sim')
print(content)

識別效果一般,但是有Tesseract優(yōu)點,那就是語言包可以進行訓練,建議先訓練再使用會好一點。
五、問題總結:
如果運行后出現下面提示,找不到tesseract路徑:
pytesseract.pytesseract.TesseractNotFoundError: tesseract is not installed or it's not in your PATH. See README file for more information.
解決方案有兩種:
1、 將tesseract安裝目錄添加至電腦的環(huán)境變量。
2、 在代碼中指定tesseract的路徑
pytesseract.pytesseract.tesseract_cmd = r"D:\Program Files\Tesseract-OCR\tesseract.exe"