使用java中的Tesseract

Omn*_*ent 31 java ocr tesseract

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

Pie*_*syP 39

现在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
Run Code Online (Sandbox Code Playgroud)

请注意,gradle项目不执行自动安装,但仍然比使用Tess4J简单得多

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

javacv家伙的大道具,只希望我早点找到它,因为它可以让我节省一周让tess4j在多个平台上工作!

  • 您可能需要从我下载的leptonica-1.71构建并安装leptonica,然后从提取的目录'CPPFLAGS =" - I/usr/local/include"LDFLAGS =" - L/usr/local /"中运行以下内容lib"./configure && make && sudo make install' (2认同)
  • 您可以在Mac上运行它们。javacv可以很好地为您提供所需的所有二进制文件,但是就像maven依赖项可以具有数百个传递性依赖项一样,ac库也可以。如果java cv将所有内容放到jar中,它将包含很大一部分linux,所以我认为他们必须在某处画线并假定存在某些库,如果查看javacpp团队的发行版,您可以看到发行的库正在缓慢增加,可能是因为它们遇到了与您所遇到的问题完全相同的问题。 (2认同)
  • 我分叉了BasicTesseractExampleGradle并创建了一个可以用Maven而不是Gradle构建的版本 - 参见[BasicTesseractExampleMaven](https://github.com/george-hawkins/BasicTesseractExampleMaven). (2认同)

小智 11

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

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

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

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

  • 好博文. (2认同)

kok*_*ing 8

你试过tess4j:http://tess4j.sourceforge.net/ .

它是Windows的tesseract的JNI包装器.


asm*_*mud 6

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

Basic TesseractExampleVer4

  • 这看起来比 tess4j 简单得多。刚刚开始在java上使用tesseract,我认为这是要走的路。 (3认同)