2013-05-03 96 views
2

我试图让Tesseract识别来自燃气表单元照片的数字。 但它返回大部分是空的页面作为输出。(我用的Tesseract 3.02) 例如带煤气表的Tesseract OCR

pic 1, some tweaking

我想用正方体为OCR应用程序的Android,所以我只是检查,如果正方体是连能够识别这样的数字。第一张照片是我在java程序中用图像预处理得到的。

如果我使用gimp并手动进行一些调整,tesseract会识别它。但我需要它来识别图片1.有什么我可以做到这一点? - >pic 2, gimp tweak

回答

2

第一张图片实际上给出了最新的Tesseract版本的正确输出。

Tesseract由于遵循分段逻辑有时会给出空白页面。在你的情况下,它会尝试分割单个单词,结果所有这些字符将被视为噪音,识别将失败。

如果你打算承认gasmeter单元的照片,考虑设置正方体的网页分块模式 8(它告诉正方体假设给定的图像作为一个单词)

您也可以考虑tesseract的其他页面分割模式

0 =只有方向和脚本检测(OSD)。

1 =使用OSD自动分页。

2 =自动页面分割,但没有OSD,或者OCR

3 =全自动页分割,但没有OSD。 (默认)

4 =假设一列可变大小的文本。

5 =假设一个统一的垂直排列文本块。

6 =假设一个统一的文本块。

7 =将图像视为单个文本行。

8 =将图像视为一个单词。

9 =将图像视为圆圈中的单个单词。

10 =将图像视为单个字符。

要设置特殊的诗,用“正方体-psm

我建议你一两件事。既然你要认识到它只有数字gasmeter值,你可以指定一个自定义的字符集配置的Tesseract文件仅包含数字。字符集的大小越小,识别的准确性越高。字符集应始终包含输入图像可能具有的字符。

即使尝试了上述所有组合,如果tesseract无法正确识别输入图像,请尝试通过消除这些不需要的斑点来提高输入图像的质量。您可以尝试使用ImageMagick清理输入图像。希望这可以帮助。