這是一篇tesseract使用備忘錄,其中主要論述限定要識別的文字 python
tesseract項目網址是:http://code.google.com/p/tesseract-ocr/git
tesseract xxx.jpg result.txt -psm 7 digitgithub
解釋工具
tesseract 命令名google
xxx.jpg 文件名,jpg,png均可以spa
result.txt 識別出的文字輸出到文件.net
-psm 7 digit 參數命令行
例如要識別身份證號碼,通常身份證號碼爲數字0到9還有大寫的X,code
加了限定之後,識別的準確率有所提高blog
例如識別身份證的一部分:
不加限定前,識別成1.3250
加了只能識別數字和X後,識別成:43250
具體方法:
打開tesseract安裝目錄,進入
tessdata/configs/
將digits複製一份,更名爲:sfz,表示增長一份識別身份證規則的配置
使用文字編輯工具,打開文件sfz
在tessedit_char_whitelist 後面跟隨要識別的字符
例如
tessedit_char_whitelist 0123456789X
保存退出
這個就是白名單,想識別的文字或者符號就寫進去
識別的時候,須要在命令里加上sfz配置,例如
tesseract xxx.jpg result -psm 7 sfz
python代碼:
import pytesseract from PIL import Image image = Image.open("../pic/c.png") card_no = tess.image_to_string(cardImage,config='-psm 7 sfz') print(card_no)
此外,關於image_to_string ,還有langeuage參數設定語言
code = pytesseract.image_to_string(image,lang="chi_sim",config="-psm 6")
還能夠疊加語言包,例如你要識別的文字裏,可能有中文和英文,能夠這樣設置:
code = pytesseract.image_to_string(image,lang="chi_sim+eng",config="-psm 6")
能夠經過tesseract --list-langs查看本地語言包:
關於config中 -psm配置項的說明能夠經過tesseract --help-psm 查看psm
在網上找到了0-10項的中文說明(另外幾項沒找到...),以下:
0:定向腳本監測(OSD)
1: 使用OSD自動分頁
2 :自動分頁,可是不使用OSD或OCR(Optical Character Recognition,光學字符識別)
3 :全自動分頁,可是沒有使用OSD(默認)
4 :假設可變大小的一個文本列。
5 :假設垂直對齊文本的單個統一塊。
6 :假設一個統一的文本塊。
7 :將圖像視爲單個文本行。
8 :將圖像視爲單個詞。
9 :將圖像視爲圓中的單個詞。
10 :將圖像視爲單個字符。
本文部分參考:http://blog.csdn.net/github_33304260/article/details/79155154?from=singlemessage