Tesseract无法阅读这个非常简单的数字串

时间:2013-11-13 10:42:45

标签: python string ocr tesseract digits

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

enter image description here

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

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

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

知道为什么会这样做吗?

或者更重要的是,我可以采取任何措施来解决这个问题(最好不需要训练tesseract)。

3 个答案:

答案 0 :(得分: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

答案 1 :(得分:1)

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

根据您的总体要求(数字总是以这种字体/大小为单位,背景是否会产生噪音等...)您可能希望手动将每个数字设为单独的图像,以确保Tesseract可以处理字体类型您正在使用。如果它无法在单个数字上工作,则它不可能在您传递的任何其他内容上工作。

答案 2 :(得分:1)

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