java - 如何提高来自 Tesseract 的 OCR 文本的准确性?

标签 java android android-ndk ocr tesseract

我使用 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/

相关文章:

android - 如何更改 timepickerdialog 中“确定”和“取消”按钮布局的背景颜色

android - java.lang.NoClassDefFoundError : android. Android Studio 中的 support.v4.view.LayoutInflaterCompatHC

java - 如何创建自定义 progressDialog

c++ - 使用 __declspec(dllexport) 时出错 : Unknown type name '__declspec'

没有java的android NDK adb可执行文件

java - 如何累积一个调用 setter 方法并以其中的变量作为参数?

java - 在 Oracle 数据库上持久化具有非自动增量 id 的实体时抛出 DataRetrievalFailureException

java - 如何将 android 中的文件保存到我的 Dropbox 目录?

Java - 将列和数据添加到现有 JTable 中

java - 安卓NDK : Autogenerate function declarations?