33

我正在尝试在 java 中构建一个示例应用程序,它将读取图像文件并输出从图像中提取的文本。我发现Tesseract项目似乎很有希望,但是它是用 c++ 编写的。为了使用它,我应该简单地从我的 java 应用程序中将它作为命令行运行Runtime.exec(...)吗?还是有更好的解决方案,也许是 JAR?此外,这只是一个示例应用程序,从可扩展性的角度来看,将其作为命令行应用程序运行是否值得关注?

4

6 回答 6

42

现在 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 在多个平台上工作!

于 2015-04-08T11:32:28.660 回答
12

我在我的 java 代码中使用了 tesseract 项目。你需要做的就是

  1. 获取 tesseract 的 tess4j jni 包装器。
  2. 在您的 ide 中打开 tess4j proj 并将源包和库添加到您自己的
    项目中。
  3. 编写为 tesseract 类创建实例的代码,然后将其用于
    执行 OCR。

请查看此http://tphanout.com/?p=18

它提供了有关如何构建 Java 项目以读取图像并使用 tesseract OCR API 将其转换为文本的说明。

于 2014-01-26T19:24:45.083 回答
8

您是否尝试过 tess4j:http ://tess4j.sourceforge.net/ 。

它是用于 windows 的 tesseract 的 JNI 包装器。

于 2013-06-27T20:52:53.730 回答
6

我已经分叉了Basic Git Repo并对其进行了更新,以便它可以与 Tesseract-ocr 版本 (4.xx) 和 bytedeco javacpp-presets 版本 (1.4.3) 兼容。

Basic TesseractExampleVer4

于 2018-11-13T04:59:03.340 回答
0

刚试过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

干杯科拉多

于 2018-06-02T09:16:16.710 回答
-1

我使用了这个如何使用 Appium 测试 Toast 消息?

有了这个

    <dependency>
        <groupId>net.sourceforge.tess4j</groupId>
        <artifactId>tess4j</artifactId>
        <version>3.2.1</version>
    </dependency>
于 2018-03-30T12:10:14.637 回答