Table des matières
java utilise tess4j pour la reconnaissance de texte d'image
1 Introduction
二、使用过程
1.maven依赖引入pom.xml
2.准备好tessdata目录下的语言库文件
3.写测试代码进行测试
1. La dépendance Maven importe pom.xml
2 Préparez le fichier de la bibliothèque de langage dans le répertoire tessdata
3. Écrivez le code de test pour tester
Maison Java javaDidacticiel Comment utiliser tess4j pour implémenter la fonction de reconnaissance de texte d'image en Java ?

Comment utiliser tess4j pour implémenter la fonction de reconnaissance de texte d'image en Java ?

May 09, 2023 pm 05:49 PM
java tess4j

    java utilise tess4j pour la reconnaissance de texte d'image

    1 Introduction

    Tess4J est Java ( JNA) encapsulation de l'API Tesseract OCR.
    Il y a longtemps, je devais effectuer une connexion automatique et cliquer sur le bouton sur les données non traitées sur la page Web, ce qui nécessitait une vérification du code de vérification de connexion, j'ai donc utilisé Tess4J, qui peut reconnaître quelques mots et chiffres simples , etc. Le taux semble moyen, mais si vous faites une erreur, modifiez simplement un code de vérification et réessayez. Vous pouvez réussir même si vous essayez plusieurs fois. Enregistrez maintenant le processus d'utilisation simple précédent pour référence future.

    Tess4J est un wrapper Java JNA pour l'API Tesseract OCR. Permet à Java d'utiliser Tesseract OCR en appelant l'API de Tess4J. Les formats pris en charge incluent TIFF, JPEG, GIF, PNG, BMP, JPEG, PDF. Lorsque je suis entré en contact avec cela pour la première fois, j’étais encore confus entre ces deux choses. Pour être clair, Tess4J est un package jar qui peut être directement utilisé par Java, et Tesseract OCR est la base pour prendre en charge Tess4J dans le texte du document. La reconnaissance Tess4J peut être importée directement à l'aide de Maven. Tess4J是对Tesseract OCR APIJava JNA 封装。使java能够通过调用Tess4J的API来使用Tesseract OCR。支持的格式包括TIFF、JPEG、GIF、PNG、BMP、JPEG、PDF。这个开始接触的时候,我对这两个东西还搞混淆了。明确说一下,Tess4J是java直接可使用的jar包,而Tesseract OCR是支持Tess4J进文件文字识别的基础,Tess4J可直接使用Maven方式引入。

    二、使用过程

    1.maven依赖引入pom.xml

    		<!-- tess4j start -->
    		<dependency>
    		    <groupId>net.sourceforge.tess4j</groupId>
    		    <artifactId>tess4j</artifactId>
    		    <version>5.6.0</version>
    		</dependency>
    		<!-- tess4j end -->
    Copier après la connexion

    2.准备好tessdata目录下的语言库文件

    需要提前下载好相关的语言库文件,这里我下了chi_sim.traineddata和eng.traineddata两个
    下载地址:https://codechina.csdn.net/mirrors/tesseract-ocr/tessdata
    下载好后放在代码里面的目录下

    Comment utiliser tess4j pour implémenter la fonction de reconnaissance de texte dimage en Java ?

    3.写测试代码进行测试

    准备好两张图片放置在代码的资源目录下,方便程序读取,

    图片1

    Comment utiliser tess4j pour implémenter la fonction de reconnaissance de texte dimage en Java ?

    图片2

    Comment utiliser tess4j pour implémenter la fonction de reconnaissance de texte dimage en Java ?

    两张图片放在资源目录下

    Comment utiliser tess4j pour implémenter la fonction de reconnaissance de texte dimage en Java ?

    代码如下:

    package cn.ljhua;
    
    import java.awt.image.BufferedImage;
    import java.io.File;
    import java.io.IOException;
    import java.io.InputStream;
    
    import javax.imageio.ImageIO;
    
    import lombok.extern.slf4j.Slf4j;
    import net.sourceforge.tess4j.ITesseract;
    import net.sourceforge.tess4j.Tesseract;
    import net.sourceforge.tess4j.TesseractException;
    
    /**
     * Tess4jOcr测试示例
     * @author liujh
     */
    @Slf4j
    public class Tess4jOcrTest {
    	
    	public static void main(String[] args) {
    		
    		Tess4jOcrTest test = new Tess4jOcrTest();
    		test.ocrTest();
    		
    	}
    	
    	public void ocrTest() {
    		
    		log.info("ocrTest start....");
    		long startMs = System.currentTimeMillis();
    		
    		 //Tesseract的代码开始---------------------->>>>
    		ITesseract instance = new Tesseract();
    		
    		/**
    		 * 组装接好tessdata目录的路径字符串
    		 */
    		String filePathPre = System.getProperty("user.dir");
        	String dataPath = filePathPre + File.separator + "tessdata";
        	
        	/**
    		 * 设置目录datapath the tessdata path to set
    		 * 否则会报Please make sure the TESSDATA_PREFIX environment variable is set to your "tessdata" directory.错误
    		 */
        	instance.setDatapath(dataPath);
        	//instance.setLanguage("eng");//默认,可以不写
        	instance.setLanguage("chi_sim");//设置中文识别
    		
        	String imageName = "verifyCode.png";
            try (InputStream inStream = this.getClass().getResourceAsStream("/" + imageName)) {
                
            	BufferedImage bImage = ImageIO.read(inStream);
            	//doOCR也可以传参为File,我这里传的BufferedImage
            	String result = instance.doOCR(bImage);
            	//识别的结果回来可能会带回车,处理掉
            	result = result.replaceAll("\n", "");
            	log.info("图片名:" + imageName +" 识别结果:"+ result);
            	
            } catch (IOException e) {
                log.error(e.getMessage(),e);
            } catch (TesseractException e) {
            	log.error(e.getMessage(),e);
    		}
            
            imageName = "vCode2.jpg";
            try (InputStream inStream = this.getClass().getResourceAsStream("/" + imageName)) {
                
            	BufferedImage bImage = ImageIO.read(inStream);
            	//doOCR也可以传参为File,我这里传的BufferedImage
            	String result = instance.doOCR(bImage);
            	//识别的结果回来可能会带回车,处理掉
            	result = result.replaceAll("\n", "");
            	log.info("图片名:" + imageName +" 识别结果:"+ result);
            	
            } catch (IOException e) {
                log.error(e.getMessage(),e);
            } catch (TesseractException e) {
            	log.error(e.getMessage(),e);
    		}
    		//Tesseract的代码结束--------------------->>>>
            
    		log.info("ocrTest success. spend time :{} ms.", (System.currentTimeMillis() - startMs));
    		
    	}
    }
    Copier après la connexion

    测试结果截图如:

    2. Processus d'utilisation

    1. La dépendance Maven importe pom.xml

    rrreee

    2 Préparez le fichier de la bibliothèque de langage dans le répertoire tessdata

    . Comment utiliser tess4j pour implémenter la fonction de reconnaissance de texte dimage en Java ?Vous devez télécharger les fichiers de la bibliothèque de langue pertinents à l'avance. Ici, j'ai téléchargé deux chi_sim.traineddata et eng.traineddataAdresse de téléchargement : https://codechina.csdn.net. /mirrors/tesseract-ocr/tessdata

    Après le téléchargement, placez-le dans le répertoire dans le code

    #🎜🎜#Comment Java utilise-t-il tess4j pour la reconnaissance de texte d'image#🎜🎜#

    3. Écrivez le code de test pour tester

    #🎜🎜# Préparez deux pages Les images sont placées dans le répertoire des ressources du code pour une lecture facile par le programme, #🎜🎜##🎜🎜#Image 1#🎜🎜##🎜🎜#Comment utiliser tess4j pour la reconnaissance de texte d'image en Java#🎜🎜##🎜🎜#Image 2 #🎜🎜##🎜🎜#Comment Java utilise-t-il tess4j pour la reconnaissance de texte d'image#🎜🎜##🎜🎜#Deux images sont placées dans le répertoire des ressources#🎜🎜##🎜🎜#Comment Java utilise-t-il tess4j pour la reconnaissance de texte d'image#🎜🎜##🎜🎜#Le code est le suivant : #🎜🎜# rrreee#🎜🎜# Une capture d'écran du résultat du test est la suivante :#🎜🎜##🎜🎜##🎜🎜##🎜🎜##🎜🎜#La reconnaissance de l'anglais est relativement normale, et La reconnaissance chinoise contient des espaces.Si nécessaire, les espaces peuvent être supprimés davantage via le Code, À ce stade, le test d'utilisation simple de tess4j est terminé. #🎜🎜#

    Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

    Déclaration de ce site Web
    Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn

    Outils d'IA chauds

    Undresser.AI Undress

    Undresser.AI Undress

    Application basée sur l'IA pour créer des photos de nu réalistes

    AI Clothes Remover

    AI Clothes Remover

    Outil d'IA en ligne pour supprimer les vêtements des photos.

    Undress AI Tool

    Undress AI Tool

    Images de déshabillage gratuites

    Clothoff.io

    Clothoff.io

    Dissolvant de vêtements AI

    AI Hentai Generator

    AI Hentai Generator

    Générez AI Hentai gratuitement.

    Article chaud

    R.E.P.O. Crystals d'énergie expliqués et ce qu'ils font (cristal jaune)
    2 Il y a quelques semaines By 尊渡假赌尊渡假赌尊渡假赌
    Repo: Comment relancer ses coéquipiers
    4 Il y a quelques semaines By 尊渡假赌尊渡假赌尊渡假赌
    Hello Kitty Island Adventure: Comment obtenir des graines géantes
    4 Il y a quelques semaines By 尊渡假赌尊渡假赌尊渡假赌
    Combien de temps faut-il pour battre Split Fiction?
    3 Il y a quelques semaines By DDD

    Outils chauds

    Bloc-notes++7.3.1

    Bloc-notes++7.3.1

    Éditeur de code facile à utiliser et gratuit

    SublimeText3 version chinoise

    SublimeText3 version chinoise

    Version chinoise, très simple à utiliser

    Envoyer Studio 13.0.1

    Envoyer Studio 13.0.1

    Puissant environnement de développement intégré PHP

    Dreamweaver CS6

    Dreamweaver CS6

    Outils de développement Web visuel

    SublimeText3 version Mac

    SublimeText3 version Mac

    Logiciel d'édition de code au niveau de Dieu (SublimeText3)

    Racine carrée en Java Racine carrée en Java Aug 30, 2024 pm 04:26 PM

    Guide de la racine carrée en Java. Nous discutons ici du fonctionnement de Square Root en Java avec un exemple et son implémentation de code respectivement.

    Nombre parfait en Java Nombre parfait en Java Aug 30, 2024 pm 04:28 PM

    Guide du nombre parfait en Java. Nous discutons ici de la définition, comment vérifier le nombre parfait en Java ?, des exemples d'implémentation de code.

    Générateur de nombres aléatoires en Java Générateur de nombres aléatoires en Java Aug 30, 2024 pm 04:27 PM

    Guide du générateur de nombres aléatoires en Java. Nous discutons ici des fonctions en Java avec des exemples et de deux générateurs différents avec d'autres exemples.

    Weka en Java Weka en Java Aug 30, 2024 pm 04:28 PM

    Guide de Weka en Java. Nous discutons ici de l'introduction, de la façon d'utiliser Weka Java, du type de plate-forme et des avantages avec des exemples.

    Numéro Armstrong en Java Numéro Armstrong en Java Aug 30, 2024 pm 04:26 PM

    Guide du numéro Armstrong en Java. Nous discutons ici d'une introduction au numéro d'Armstrong en Java ainsi que d'une partie du code.

    Numéro de Smith en Java Numéro de Smith en Java Aug 30, 2024 pm 04:28 PM

    Guide du nombre de Smith en Java. Nous discutons ici de la définition, comment vérifier le numéro Smith en Java ? exemple avec implémentation de code.

    Questions d'entretien chez Java Spring Questions d'entretien chez Java Spring Aug 30, 2024 pm 04:29 PM

    Dans cet article, nous avons conservé les questions d'entretien Java Spring les plus posées avec leurs réponses détaillées. Pour que vous puissiez réussir l'interview.

    Break or Return of Java 8 Stream Forach? Break or Return of Java 8 Stream Forach? Feb 07, 2025 pm 12:09 PM

    Java 8 présente l'API Stream, fournissant un moyen puissant et expressif de traiter les collections de données. Cependant, une question courante lors de l'utilisation du flux est: comment se casser ou revenir d'une opération FOREAK? Les boucles traditionnelles permettent une interruption ou un retour précoce, mais la méthode Foreach de Stream ne prend pas directement en charge cette méthode. Cet article expliquera les raisons et explorera des méthodes alternatives pour la mise en œuvre de terminaison prématurée dans les systèmes de traitement de flux. Lire plus approfondie: Améliorations de l'API Java Stream Comprendre le flux Forach La méthode foreach est une opération terminale qui effectue une opération sur chaque élément du flux. Son intention de conception est

    See all articles