it-swarm.com.de

Tesseract von Java verwenden

Ich versuche, eine Beispielanwendung in Java zu erstellen, die eine Bilddatei liest und nur den aus dem Bild extrahierten Text ausgibt. Ich habe das Tesseract -Projekt gefunden, das vielversprechend erscheint, allerdings in c ++. Soll ich es einfach als Befehlszeile von meiner Java-App Runtime.exec(...) ausführen? Oder gibt es eine bessere Lösung, vielleicht einen JAR? Darüber hinaus ist dies nur eine Beispiel-App. Würde es als Befehlszeilen-App aus Sicht der Skalierbarkeit ein Problem sein?

27
Omnipresent

Jetzt wird Tesseract vom javacv-Projekt bereitgestellt. Dies ist eine weitaus bessere Option als die Verwendung von Tess4J, da Sie lediglich eine einzige Abhängigkeit zu Ihrer POM-Datei hinzufügen müssen. Die systemeigenen Bibliotheken für Ihre Plattform werden dann automatisch von Ihnen heruntergeladen und verknüpft javacv tesseract version.

Ich habe hier ein Beispielprojekt erstellt - https://github.com/piersy/BasicTesseractExample

und auch ein Beispielprojekt hier - https://github.com/piersy/BasicTesseractExampleGradle

Damit dies auf meinem Ubuntu-Rechner funktioniert, musste ich meine Installation von libstdc ++ 6 aktualisieren

Ich habe dies erreicht, indem ich Folgendes ausgeführt habe, obwohl die Installation von libstdc ++ 6 möglicherweise für Sie funktioniert.

Sudo add-apt-repository ppa:ubuntu-toolchain-r/test 
Sudo apt-get update
Sudo apt-get install libstdc++6

Beachten Sie, dass das Gradle-Projekt die automatische Installation nicht durchführt, aber es ist immer noch viel einfacher als mit Tess4J

Das Javacv-Projekt ist hier - https://github.com/bytedeco/javacpp-presets/tree/master/tesseract

Große Requisiten für die Javacv-Jungs, ich wünschte nur, ich hätte das schon früher gefunden, da ich mir eine Woche erspart hätte, tess4j dazu zu bringen, auf mehreren Plattformen zu arbeiten!

34
PiersyP

Ich habe das Tesseract-Projekt in meinem Java-Code verwendet. Alles was Sie tun müssen, ist

  1. Holen Sie sich den tess4j-jni-Wrapper für tesseract.
  2. Öffnen Sie das Projekt tess4j in Ihrem ide und fügen Sie die Quellpakete und -libs zu Ihren eigenen hinzu
    Projekt.
  3. Schreiben Sie den Code, der eine Instanz für die Tesseract-Klasse erstellt, und verwenden Sie ihn dann für
    Durchführen der OCR.

Bitte werfen Sie einen Blick in diese http://tphangout.com/?p=18

Es enthält Anweisungen zum Erstellen eines Java-Projekts, um ein Bild zu lesen und mithilfe der OCR-API von tesseract in Text zu konvertieren.

10
Raja Yogan

Haben Sie tess4j ausprobiert: http://tess4j.sourceforge.net/

Es ist JNI-Wrapper von Tesseract für Windows.

8
kokosing

Ich habe das Basic Git Repo gegabelt und so aktualisiert, dass es mit der Tesseract-ocr-Version (4.x.x) und der bytedeco javacpp-presets-Version (1.4.3) kompatibel ist.

BasicTesseractExampleVer4

2
asmmahmud

gerade versucht https://github.com/piersy/BasicTesseractExample

 here's a screenshot

es sieht so aus, als würde es funktionieren, mit nur einer Abhängigkeit:

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

welches ist hier: https://github.com/bytedeco/javacpp-presets/tree/master/tesseract

beifall Corrado

0
ccampisano