web-dev-qa-db-fra.com

Utiliser Tesseract de java

J'essaie de créer un exemple d'application en Java qui lira un fichier image et produira simplement le texte extrait de l'image. J'ai trouvé le projet Tesseract qui semble prometteur, cependant, c'est en c ++. Pour l'utiliser, dois-je simplement l'exécuter en tant que ligne de commande à partir de mon application Java Runtime.exec(...)? Ou y a-t-il une meilleure solution, peut-être un JAR? En outre, il ne s'agit que d'un exemple d'application. Son utilisation en tant qu'application en ligne de commande serait-elle une préoccupation du point de vue de l'évolutivité?

27
Omnipresent

Maintenant, tesseract est fourni par le projet javacv, il s’agit d’une bien meilleure option que celle d’utiliser Tess4J puisqu’il suffit d’ajouter une seule dépendance à votre fichier pom. Les bibliothèques natives de votre plate-forme seront ensuite téléchargées et liées automatiquement pour vous par le serveur. version javacv tesseract.

J'ai créé un exemple de projet maven ici - https://github.com/piersy/BasicTesseractExample

et aussi un exemple de projet ici - https://github.com/piersy/BasicTesseractExampleGradle

Pour que cela fonctionne sur ma machine Ubuntu, je devais mettre à jour mon installation de libstdc ++ 6.

J'ai réalisé ceci en exécutant ce qui suit, bien que l'installation de libstdc ++ 6 puisse fonctionner pour vous.

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

Notez que le projet gradle n’effectue pas l’installation automatique mais reste un peu plus simple que d’utiliser Tess4J

Le projet javacv est ici - https://github.com/bytedeco/javacpp-presets/tree/master/tesseract

De gros accessoires pour les gars de javacv, j'aurais seulement regretté de ne pas l'avoir trouvé plus tôt, car cela m'aurait évité une semaine de travail de tess4j sur plusieurs plates-formes!

34
PiersyP

J'ai utilisé le projet tesseract dans mon code Java. Tout ce que vous devez faire c'est

  1. Obtenez le wrapper tess4j jni pour tesseract.
  2. Ouvrez le projet tess4j dans votre ide et ajoutez les paquets sources et les libs dans votre propre
    projet.
  3. Ecrivez le code en créant une instance pour la classe tesseract puis utilisez-le pour
    effectuer l'OCR.

S'il vous plaît jeter un oeil dans ce http://tphangout.com/?p=18

Il explique comment créer un projet Java pour lire une image et la convertir en texte à l'aide de l'API OCR de tesseract.

10
Raja Yogan

Avez-vous essayé tess4j: http://tess4j.sourceforge.net/

C'est le wrapper JNI de tesseract pour Windows.

8
kokosing

J'ai créé le Basic Git Repo et je l'ai mis à jour pour qu'il soit compatible avec la version de Tesseract-ocr (4.x.x) et la version de bytedeco javacpp-presets (1.4.3).

BasicTesseractExampleVer4

2
asmmahmud

je viens d'essayer https://github.com/piersy/BasicTesseractExample

 here's a screenshot

on dirait que cela fonctionne, en utilisant juste une dépendance à ceci:

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

qui est ici: https://github.com/bytedeco/javacpp-presets/tree/master/tesseract

à la vôtre corrado

0
ccampisano