我正在尝试在 java 中构建一个示例应用程序,它将读取图像文件并输出从图像中提取的文本。我发现Tesseract项目似乎很有希望,但是它是用 c++ 编写的。为了使用它,我应该简单地从我的 java 应用程序中将它作为命令行运行Runtime.exec(...)
吗?还是有更好的解决方案,也许是 JAR?此外,这只是一个示例应用程序,从可扩展性的角度来看,将其作为命令行应用程序运行是否值得关注?
6 回答
现在 tesseract 由 javacv 项目提供,这是一个比使用 Tess4J 更好的选择,因为所需要的只是向您的 pom 文件添加一个依赖项,然后您的平台的本机库将被下载并自动为您链接javacv tesseract 版本。
我在这里创建了一个示例 maven 项目 - https://github.com/piersy/BasicTesseractExample
还有一个示例 gradle 项目 - https://github.com/piersy/BasicTesseractExampleGradle
为了在我的 ubuntu 机器上工作,我需要更新我的 libstdc++6 安装
我通过运行以下命令实现了这一点,尽管仅安装 libstdc++6 可能对您有用。
sudo add-apt-repository ppa:ubuntu-toolchain-r/test
sudo apt-get update
sudo apt-get install libstdc++6
请注意,gradle 项目不执行自动安装,但仍然比使用 Tess4J 简单得多
javacv 项目在这里 - https://github.com/bytedeco/javacpp-presets/tree/master/tesseract
javacv 人的大道具,只希望我早点找到这个,因为它可以为我节省一周的时间让 tess4j 在多个平台上工作!
我在我的 java 代码中使用了 tesseract 项目。你需要做的就是
- 获取 tesseract 的 tess4j jni 包装器。
- 在您的 ide 中打开 tess4j proj 并将源包和库添加到您自己的
项目中。 - 编写为 tesseract 类创建实例的代码,然后将其用于
执行 OCR。
它提供了有关如何构建 Java 项目以读取图像并使用 tesseract OCR API 将其转换为文本的说明。
您是否尝试过 tess4j:http ://tess4j.sourceforge.net/ 。
它是用于 windows 的 tesseract 的 JNI 包装器。
我已经分叉了Basic Git Repo并对其进行了更新,以便它可以与 Tesseract-ocr 版本 (4.xx) 和 bytedeco javacpp-presets 版本 (1.4.3) 兼容。
刚试过https://github.com/piersy/BasicTesseractExample
看起来它有效,只使用一个依赖项:
<dependency>
<groupId>org.bytedeco.javacpp-presets</groupId>
<artifactId>tesseract</artifactId>
<version>3.03-rc1-0.11</version>
</dependency>
在这里: https ://github.com/bytedeco/javacpp-presets/tree/master/tesseract
干杯科拉多
我使用了这个如何使用 Appium 测试 Toast 消息?
有了这个
<dependency>
<groupId>net.sourceforge.tess4j</groupId>
<artifactId>tess4j</artifactId>
<version>3.2.1</version>
</dependency>