在收据上使用Tesseract时如何获得更好的结果?

时间:2019-10-01 21:41:32

标签: java dataset ocr tesseract

我正在用Java构建一个应用程序,该应用程序可以扫描收据,并使用带有tesseract库的OCR提取所有文本。我已经在2张图像上运行了该程序,一张是我拍摄的,另一张是来自互联网的,我获得的效果几乎与互联网上的一张差不多,但是从我的图像中得到了随机字符串。我该如何改变呢?我需要高分辨率的高质量图像吗?

我试图拍摄更好的图像,甚至只是一个单词的图像,但我什么都没得到。

Tesseract instance = new Tesseract();
instance.setDatapath(pathToMyTessData); 
instance.setLanguage("fra");

String result = instance.doOCR(new File(myReceiptFile));
System.out.println(result);

我要扫描的收据包含很多我不想提取的信息(对我无用),有什么方法可以仅提取食物项目,日期,总数等吗?

P.S:我的机票看起来像this

2 个答案:

答案 0 :(得分:0)

也许您应该训练您的tesseract,还有另一篇关于此的文章。 here

答案 1 :(得分:0)

您可能会错过这个主题image processing to improve tesseract OCR accuracy

如果要获得理想的结果,也许需要进行自定义布局分析,以便将包含文本的区域(=>相同的字体大小)发送到tesseract。