tesseract如何限定識別的文字

這是一篇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)

 

language的設置

此外,關於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查看本地語言包: 

-psm的說明

關於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

相關文章
相關標籤/搜索