如何只在pytesser中启用数字?

时间:2012-02-27 14:30:00

标签: python ocr tesseract

我在python中运行pytesser给OCR一个图像。我第一次在屏幕上抓取图像,这很好,但是在接下来的几页中准确性会恶化,直到87 + 1是$ + $

奇怪,是吗?我的猜测是因为pytesser(来自tesseract for python的端口)是为了识别单词而构建的,并将你的OCR放入上下文中以用于下一个问题。所以,由于无法禁用此功能,我只能将其设置为正确的数字?但pytesser上没有太多的文档,所以我继续使用tesseract faq,但我并没有真正得到代码。

  

使用

TessBaseAPI::SetVariable("tessedit_char_whitelist", "0123456789");
     

在调用Init函数之前或将其放在一个名为的文本文件中   tessdata/configs/digits

tessedit_char_whitelist 0123456789
     

然后您的命令行变为:

tesseract image.tif outputbase nobatch digits
     

警告:在旧的和新的配置变量合并之前,您必须这样做   也有nobatch参数。

我猜测C或C ++。有没有办法在python中这样做?或者甚至更好,禁用OCR的上下文?

1 个答案:

答案 0 :(得分:1)

在python中:

import tesseract
ocr = tesseract.TessBaseAPI();
ocr.Init(".","eng",tesseract.OEM_TESSERACT_ONLY)
ocr.SetVariable("tessedit_char_whitelist", "0123456789")
你可能也想要:

ocr.SetVariable("classify_enable_learning", "0")
ocr.SetVariable("classify_enable_adaptive_matcher", "0")