OCR en Java (reconnaissance de caractères à partir d'images)

Choses à faire

Récupérer le texte d'une image en utilisant OSS tess4j

Maven Copiez et collez de mvnrepository vers POM.xml

<dependency>
    <groupId>net.sourceforge.tess4j</groupId>
    <artifactId>tess4j</artifactId>
    <version>4.3.1</version>
</dependency>

tess4j-4.3.1.jar est DL キャプチャ.PNG

Si vous ne pouvez pas utiliser Maven, À partir d'ici

Fichier de reconnaissance japonais

Obtenez le fichier de reconnaissance japonais (jpn.traineddata) à partir du GitHub Repository

La source

OcrTrial.java


import java.awt.image.BufferedImage;
import java.io.File;
import java.io.IOException;
import javax.imageio.ImageIO;
import net.sourceforge.tess4j.ITesseract;
import net.sourceforge.tess4j.Tesseract;
import net.sourceforge.tess4j.TesseractException;

public class OcrTrial {
	public static void main(String[] args) throws IOException, TesseractException {
		//Charger l'image
		File file = new File("C:\\work\\INPUT.JPG");
		BufferedImage img = ImageIO.read(file);

		ITesseract tesseract = new Tesseract();
		tesseract.setDatapath("C:\\work"); //Fichier de langue (jpn.traineddata)))
		tesseract.setLanguage("jpn"); //Spécifiez "japonais" comme langue d'analyse

		//une analyse
		String str = tesseract.doOCR(img);

		//résultat
		System.out.println(str);
	}
}

Fichier image défini sur INPUT

INPUT.JPG

Résultat de sortie

キャプチャ.JPG

Résumé

C'est l'erreur 〇 (pictogramme) × (Gramme pivot)

Si l'image peut être clairement identifiée comme des caractères, le taux de reconnaissance semble élevé.

la prochaine fois

Recommended Posts

OCR en Java (reconnaissance de caractères à partir d'images)
Corrigez le code de caractère en Java et lisez à partir de l'URL
Devinez le code de caractère en Java
[Java] Supprimer les espaces dans les chaînes de caractères
Étudiez le Deep Learning à partir de zéro en Java.
Appel de méthodes Java à partir de JavaScript exécutées en Java
Inverser la clé de la valeur dans la carte Java
Obtenir l'historique du serveur Zabbix en Java
Appeler la reconnaissance visuelle dans Watson Java SDK
GetInstance () à partir d'une classe @Singleton dans Groovy à partir de Java
Partition en Java
Appel de méthode Java depuis RPG (appel de méthode dans sa propre classe)
Changements dans Java 11
Janken à Java
Comment obtenir une classe depuis Element en Java
Extraction de texte en Java à partir de PDF avec pdfbox-2.0.8
Capture et sauvegarde de l'installation de sélénium en Java
Obtenez unixtime (secondes) de ZonedDateTime dans Scala / Java
[Deep Learning from scratch] dans Java 3. Réseau neuronal
Code de caractère Java
Taux circonférentiel à Java
Générer OffsetDateTime à partir de Clock et LocalDateTime en Java
FizzBuzz en Java
[Java] Obtenir KFunction à partir de la méthode / du constructeur en Java [Kotlin]
Essayez d'appeler des méthodes synchronisées à partir de plusieurs threads en Java
Tout supprimer du SDK Java dans Azure CosmosDB
[Java] Comment effacer un caractère spécifique d'une chaîne de caractères
Soustraire les constantes Enum des chaînes et des valeurs en Java
Modifier la qualité de stockage des images JPEG en Java
Appeler un programme écrit en Swift depuis Processing (Java)
À propos de la conversion pleine largeur ⇔ demi-largeur des chaînes de caractères en Java
Lire JSON en Java
Implémentation de l'interpréteur par Java
Appeler Java depuis JRuby
Application Janken en Java
Programmation par contraintes en Java
Mettez java8 dans centos7
Changements de Java 8 à Java 11
Somme de Java_1 à 100
NVL-ish guy en Java
Joindre des tableaux en Java
"Hello World" en Java
Interface appelable en Java
Commentaires dans la source Java
Évaluer la source Java à partir de Java
Fonctions Azure en Java
Formater XML en Java
Simple htmlspecialchars en Java
Implémentation Boyer-Moore en Java
Hello World en Java
Accédez à API.AI depuis Java
Utiliser OpenCV avec Java
Mémorandum WebApi avec Java
Détermination de type en Java
Exécuter des commandes en Java (ping)
Divers threads en java
De Java à Ruby !!
Implémentation du tri de tas (en java)
API Zabbix en Java