使用java中的Tesseract

时间:2012-12-20 14:45:26

标签: java ocr tesseract

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

6 个答案:

答案 0 :(得分:36)

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

答案 1 :(得分:11)

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

  1. 获取tesseract的tess4j jni包装。
  2. 打开ide中的tess4j项目,将源包和库添加到您自己的中 项目
  3. 编写代码,为tesseract类创建一个实例,然后将其用于
    执行OCR。
  4. 请查看此http://tphangout.com/?p=18

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

答案 2 :(得分:8)

你有没有尝试过tess4j:http://tess4j.sourceforge.net/

它是Windows的tesseract的JNI包装器。

答案 3 :(得分:3)

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

BasicTesseractExampleVer4

答案 4 :(得分:0)

刚试过https://github.com/piersy/BasicTesseractExample

here's a screenshot

看起来很有效,只使用一个依赖项:



<dependency>
      <groupId>org.bytedeco.javacpp-presets</groupId>
      <artifactId>tesseract</artifactId>
      <version>3.03-rc1-0.11</version>
</dependency>
&#13;
&#13;
&#13;

在这里: https://github.com/bytedeco/javacpp-presets/tree/master/tesseract

欢呼声 的Corrado

答案 5 :(得分:-1)

我使用了这个How to Test Toast Messages using Appium?

用这个

    <dependency>
        <groupId>net.sourceforge.tess4j</groupId>
        <artifactId>tess4j</artifactId>
        <version>3.2.1</version>
    </dependency>