Utilisation de Tesseract depuis java


J'essaie de créer un exemple d'application en java qui lira un fichier image et sortira 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 de l'exécuter en ligne de commande à partir de mon application java Runtime.exec(...) ? Ou y a-t-il une meilleure solution, peut-être un POT? De plus, il ne s'agit que d'un exemple d'application, l'exécuter en tant qu'application en ligne de commande serait-il une préoccupation du point de vue de l'évolutivité?

Author: Omnipresent, 2012-12-20

5 answers

Maintenant tesseract est fourni par le projet javacv, c'est une bien meilleure option que d'utiliser Tess4J car tout ce qui est requis est d'ajouter une seule dépendance à votre fichier pom, les bibliothèques natives pour votre plate-forme seront ensuite téléchargées et liées automatiquement pour vous par la version javacv tesseract.

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

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

Pour que cela fonctionne sur ma machine ubuntu, j'avais besoin de mettre à jour mon installation de libstdc++6

J'y suis parvenu 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

Remarque le projet gradle n'effectue pas l'installation automatique mais est encore beaucoup plus simple que d'utiliser Tess4J

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

Gros accessoires pour les gars de javacv, j'aurais seulement aimé trouver cela plus tôt car cela m'aurait sauvé une semaine de travail de tess4j sur plusieurs plates-formes!

 29
Author: PiersyP, 2015-04-09 08:55:36

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

  1. Obtenez le wrapper jni tess4j pour tesseract.
  2. Ouvrez le projet tess4j dans votree et ajoutez les paquets source et les bibliothèques dans les vôtres
    projet.
  3. Écrivez le code en créant une instance pour la classe tesseract, puis utilisez-le pour
    exécution de l'OCR.

Veuillez jeter un oeil à ce http://tphangout.com/?p=18

Il donne des instructions sur la façon de construire un projet java pour lire une image et la convertir en texte à l'aide de l'API OCR tesseract.

 10
Author: Raja Yogan, 2014-10-21 18:35:40

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

C'est un wrapper JNI de tesseract pour Windows.

 8
Author: kokosing, 2013-06-27 20:58:33

Juste essayé https://github.com/piersy/BasicTesseractExample

voici une capture d'écran

Semble que cela fonctionne, en utilisant une seule 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

Cheers corrado

 0
Author: ccampisano, 2018-06-02 09:16:16

J'ai utilisé ceci Comment tester les messages Toast en utilisant Appium?

Avec ce

    <dependency>
        <groupId>net.sourceforge.tess4j</groupId>
        <artifactId>tess4j</artifactId>
        <version>3.2.1</version>
    </dependency>
 -1
Author: SpyZip, 2018-03-30 12:10:14