2013-02-13 147 views
4

我正在使用Tesseract,我想开发一个能够识别字符序列的应用程序。我有很好的结果,但不是很好。Tesseract OCR:是否可以强制特定模式?

字符序列我想读的有总是一个特定的模式,让我们说:

数数数炭炭 - (如:123AB)

有没有办法“告诉“ocr引擎的结构总是固定的,为了提高识别的结果?

预先感谢您。

+0

这个帖子[ “限制字符的Tesseract正在寻找”(http://stackoverflow.com/ question/2363490/limit-characters-tesseract-is-looking-for)也许对你有些用处 – DMK 2013-02-13 16:48:47

+0

谢谢,我看了一下,但没有帮助。关键是在我的序列中,我可以拥有所有可能的字符[A-Z]和数字[0-9],所以我不能使用任何限制。 我唯一的信息是前3个字符是数字,而最后2个字符。 – stei2348 2013-02-14 09:27:53

+0

@ stei2348:您可以对结果字符串进行一些后处理,例如将I转换为1,反之亦然。或预处理源图像。 – 2013-12-09 23:52:34

回答

0

您可以使用 “tessedit_char_whitelist” 参数

3

尝试在正方体bazaar匹配模式:

\d\d\d\c\c 
+0

根据文档: “注意:在选择要包含的模式时,请注意提供非常通用模式的事实会使得运行速度变慢......由于可能难以识别的潜在速度问题,每个用户模式必须至少从unicharset开始具有kSaneNumConcreteChars具体字符。“ 含义该模式将被忽略,因为它具有少于4个具体字符。 4是kSaneNumConcreteChars的当前硬编码值。 – willsteel 2015-07-29 08:58:51

+0

我刚才看了一下GitHub,似乎kSaneNumConcreteChars现在被硬编码为“0”。在此处查看:https://github.com/tesseract-ocr/tesseract/blob/master/dict/trie.h – katzenhut 2017-01-27 15:29:14