3

我目前正在用 python 编写一个脚本,需要使用 tesseract 来读取这样的数字:

在此处输入图像描述

仅使用数字和 -psm 6(或 7)输出 5.551

我在其他数字上取得了一些成功(5.700 作品),但这个特定的数字给我带来了很多问题。不幸的是,我的程序需要高度的准确性,但我认为 tesseract 能够破译这样一个简单的字符串。

我也尝试使用 GOCR 并正确读取 6.881(耶!),但输出 5._00 为 5.700(嘘!)

知道为什么会这样做吗?

或者更重要的是,我可以做任何事情来解决这个问题(最好不用训练 tesseract )。

4

3 回答 3

2

我使用 Imagemagick 将其大小加倍并删除了透明度(将其替换为白色)(如果需要,您可以使用其他东西)并且 Tesseract OCR 正确地对增强图像进行了处理:

$ convert I1Zau.png -background white -flatten -resize 200% I1Zau_2.png
$ tesseract I1Zau_2.png o.txt
$ cat o.txt.txt 
6.881
于 2013-11-13T13:32:33.537 回答
1

欢迎来到 OCR 的世界!不幸的是,即使是那些简单的情况,对于基本的 OCR 应用程序也可能存在问题。我已经成功使用的一种解决方法是实际上使您的图像更大(使用 imagemagick),然后输入 Tesseract。这只能在一定程度上起作用。您还可以尝试对图像进行形态学操作的标准策略。

根据您的总体要求(数字是否始终采用此字体/大小,背景是否嘈杂等...)您可能希望手动将每个数字设为单独的图像,以确保 Tesseract 可以处理您正在使用的字体类型. 如果它不能在个位数上工作,那么它不太可能在你通过它的其他任何东西上工作。

于 2013-11-13T13:06:48.360 回答
1

图像分辨率太低了。简单地重新缩放到 300 DPI 对我来说已经产生了正确的结果。

于 2013-11-13T23:50:43.687 回答