如何提高Tesseract的OCR文本的准确性?

我创建了一个基本应用程序,用于使用Google的Tesseract API识别文本,并将其与我的相机应用程序集成。 它工作正常,但唯一的问题是准确性,因为有时文本被识别为一组随机字符,我猜准确率约为50%。

此外,当它尝试扫描图像中的四个以上的单词时,应用程序崩溃。

String ocrText = baseApi.getUTF8Text(); baseApi.end(); 

其中baseApi是Tesseract API类的对象。

我是否需要使用不同的数据结构来保存已识别的文本,还是有其他原因导致超过四个单词无法识别?

Tesseract API类提供了一个isValidWord方法来检查字符串是否是有效字。 您可以使用它来检查识别的字符。 这将提高输出的准确性。

我正在使用Tess4j进行开发这是tesseract-ocr的Java JNA包装器,它在检查后提供了非常好的结果。

不准确的结果可能是由于文本大小,请检查出来。 它说“精度下降到10pt x 300dpi以下,迅速低于8pt x 300dpi。”

此外,不能检测超过4个单词取决于很多因素,测试图像的类型(具有多少特征),图像的大小,平台等。