我在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的上下文?
答案 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")