tesseract如何限定识别的文字

2018-02-27 11:25:41来源:oschina作者:乐_然人点击

分享

这是一篇tesseract使用备忘录,其中主要论述限定要识别的文字



网址:

tesseract项目网址是:http://code.google.com/p/tesseract-ocr/

命令行的使用:

tesseract xxx.jpg result.txt -psm 7 digit


解释


tesseract 命令名


xxx.jpg 文件名,jpg,png都可以


result.txt 识别出的文字输出到文件


-psm 7 digit 参数

限定要识别的文字

例如要识别身份证号码,一般身份证号码为数字0到9还有大写的X,


加了限定以后,识别的准确率有所提升


例如识别身份证的一部分:



不加限定前,识别成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


最新文章

123

最新摄影

闪念基因

微信扫一扫

第七城市微信公众平台