从java使用Tesseract

2022-09-01 08:18:56

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


答案 1

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


答案 2

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

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

请看一下这个 http://tphangout.com/?p=18

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


推荐