1

我在 Ubuntu Linux 上使用 tesseract-ocr 包,我已经使用了一段时间,我认为为了提高 OCR 的准确性,我只需要字母表中的字母子集。我需要的字母是:

0123456789abcdefghijklmnopqrstuvwxyz

只有这样,甚至不是大写字母,任何人都可以帮助我指示 tesseract 只匹配字母的子集吗?

谢谢,

4

2 回答 2

7

python-tesseract 项目页面

import tesseract
api = tesseract.TessBaseAPI()
api.Init(".","eng",tesseract.OEM_DEFAULT)
api.SetVariable("tessedit_char_whitelist", "0123456789abcdefghijklmnopqrstuvwxyz")
api.SetPageSegMode(tesseract.PSM_AUTO)

所以只需在api.SetVariable.

来自tesseract-ocr 项目 FAQ

正方体 2.03 使用

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

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

tessedit_char_whitelist 0123456789 

然后你的命令行变成:

tesseract image.tif outputbase nobatch digits 

警告:在新旧配置变量合并之前,您还必须拥有 nobatch 参数。

Tesseract 3 已经创建了一个数字配置文件,所以只需运行一个 tesseract 命令,如下所示:

tesseract imagename outputbase digits
于 2013-03-19T23:11:50.157 回答
1

您正在寻找的是 Tesseract 白名单。如果您使用 python 并使用它和 API,我认为这应该可以工作(在 Tesseract Google Group 上找到)。

api.SetVariable("tessedit_char_whitelist", "abcdefghijklmnopqrstuvwxyz0123456789 ");

请注意,我不确定这适用于哪个版本的 Tesseract。

于 2013-03-19T23:15:33.953 回答