我使用 Google 的 Tesseract API 创建了一个用于识别文本的基本应用程序,并将其与我的相机应用程序集成。它工作正常,但唯一的问题是准确性,因为有时文本被识别为一组随机字符,我猜准确性大约为 50%。
此外,当它尝试扫描图像中的四个以上单词时,应用程序会崩溃。
String ocrText = baseApi.getUTF8Text();
baseApi.end();
其中 baseApi
是 Tesseract API 类的对象。
我是否需要使用不同的数据结构来保存已识别的文本,或者是否有其他原因无法识别超过四个单词?
最佳答案
Tesseract API 类提供了一个 isValidWord检查字符串是否为有效单词的方法。您可以使用它来检查识别的字符。这将提高输出的准确性。
我正在使用 Tess4j 进行开发,它是 tesseract-ocr 的 Java JNA 包装器,经过检查后它给出了相当不错的结果。
不准确的结果可能是由于文本大小,检查 this出去。它说“精度下降到 10pt x 300dpi 以下,迅速下降到 8pt x 300dpi 以下。”
此外,无法检测到超过 4 个单词取决于很多因素,测试图像的类型(具有多少特征)、图像的大小、平台等。
关于java - 如何提高来自 Tesseract 的 OCR 文本的准确性?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11301343/