Aprende Java Aprende Php Aprende C++ Aprende HTML 5 Aprende JavaScript Aprende JSON Aprende MySQL Aprende SQLServer Aprende Visual Basic 6 Aprende PostgreSQL Aprende SQLite Aprende Redis Aprende Kotlin Aprende XML Aprende Linux VSC Aprende Wordpress Aprende Laravel Aprende VueJS Aprende JQuery Aprende Bootstrap Aprende Netbeans Aprende Android
Sigueme en Facebook Sigueme en Twitter Sigueme en Instagram Sigueme en Youtube Sigueme en TikTok Sigueme en Whatsapp
Home / Java / Reconocimiento Óptico de Caracteres con Tess4J

Reconocimiento Óptico de Caracteres con Tess4J

Por jc mouse viernes, agosto 9, 2019

El reconocimiento óptico de caracteres o OCR (Optical Character Recognition), es un proceso dirigido a la digitalización de textos, los cuales identifican automáticamente a partir de una imagen símbolos o caracteres que pertenecen a un determinado alfabeto.

En este post se explica cómo implementar el reconocimiento óptico de caracteres para imágenes con Tess4J el cual es un contenedor basado en JNA (Java Native Access) para Tesseract OCR API, la biblioteca proporciona soporte de reconocimiento óptico de caracteres (OCR) para:

  • Formatos de imagen TIFF, JPEG, GIF, PNG y BMP
  • Imágenes TIFF de varias paginas
  • Documentos PDF

Descarga e instalación

Puedes usar Tess4J desde Maven:

<!-- https://mvnrepository.com/artifact/net.sourceforge.tess4j/tess4j -->
<dependency>
    <groupId>net.sourceforge.tess4j</groupId>
    <artifactId>tess4j</artifactId>
    <version>4.4.0</version>
</dependency>

o descargar la librería desde este enlace Tess4J-3.4.8-src.zip son 30.7 MB

Ejemplo con Netbeans

Crea un proyecto java con netbeans el cual llamaremos «Ejemplo Tess4J», agrega la librería con todas sus dependencias, si usas maven este paso ya no es necesario.

La imagen que utilizaremos de ejemplo es la siguiente:

placeres de la vida

También necesitamos los archivos *.traineddata correspondientes al lenguaje que deseamos utilizar, puedes descargar estos desde https://github.com/tesseract-ocr/tessdatahttps://github.com/tesseract-ocr/tessdata/tree/3.04.00 dependiendo de la versión de Tess4J que estés utilizando. El archivo que descargaremos es spa.traineddata (15.6 MB) para el lenguaje español, código «spa».

Colocaremos la imagen PNG en el directorio raíz de nuestro proyecto y los archivos traineddata en una carpeta con el nombre de «tessdata«, es decir:

reconocimiento de texto

Ahora en la clase Main colocaremos el siguiente código:

package org.example;

import java.io.File;
import net.sourceforge.tess4j.*;
/** 
 * @author Tess4J
 */
public class Main {
    
    public static void main(String[] args) {   
        
        File imageFile = new File("pensamiento.png");
        ITesseract instance = new Tesseract();  // JNA Interface Mapping
        // ITesseract instance = new Tesseract1(); // JNA Direct Mapping
        instance.setLanguage("spa");//lenguaje
        //por defecto busca los archivos traineddata en la carpeta tessdata
        //ubicada en la raiz del proyecto, si utilizas otra dirección,
        //debes indicar la ruta con este metodo
        //instance.setDatapath("/tessdata"); // dirección de los archivos tessdata         
        try {
            String result = instance.doOCR(imageFile);
            //impresión del resultado
            System.out.println(result);
        } catch (TesseractException e) {
            System.err.println(e.getMessage());
        }
    }
    
}

Y al ejecutar tenemos:

OCR en Java

enjoy!

Tags

Artículos similares

Material Design: CardView (Tarjetas)

Un CardView es parte de los estilos de Material Design y nos permite mostrar información dentro de tarjetas (Card), esta[...]

Depuración avanzada en PHP

Xdebug es una extensión para PHP que nos ayuda con la depuración y el desarrollo de aplicaciones. Contiene un depurador[...]

Lector Feed con Java/Rome

En este tutorial crearemos un lector de Feeds en Java/netbeans, pero antes debemosa saber que es un Feed, según Santa Wi[...]

iFrame Injection – Ocultar código malicioso

En ocasiones los administradores de sitios web experimentan problemas de lentitud en su carga o en el peor de los casos[...]

Alda: Lenguaje de programación para composición musical

Alda es un lenguaje de programación desarrollado por Dave Yarwood el cual esta basado en texto para composición musical,[...]

Ejecutar JAR con parámetros de entrada

Java nos permite pasar parámetros a una aplicación empaquetada en un *.JAR mediante el MAIN de nuestro programa, pero cl[...]