Sigueme en Facebook Sigueme en Twitter Sigueme en Instagram Sigueme en Youtube
JC Mouse Bolivia
Index / Java / Reconocimiento Óptico de Caracteres con Tess4J

Reconocimiento Óptico de Caracteres con Tess4J

Autor 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

Si te ha gustado podrías compartirlo o dejar un comentario. ¡Muchas gracias!
Autor: JC Mouse

Yo soy yo :) JC Mouse, Soy orgullosamente boliviano soy fundador y CEO de la web jc-Mouse.net uno de las pocas web en emprendimiento y tecnología en Bolivia.

Toda la información que encuentres en este sitio es y sera completamente gratis siempre, puedes copiar, descargar y re-publicar si así lo deseas en otros blogs o sitios web, solo te pido a cambio que dejes una referencia a esta web. Esto nos ayuda a crecer y seguir aportando. Bye

Enjoy! :)

También Te Podría Interesar

Proyecto Ascii Art (metodo de Black/white)

Proyecto Ascii Art (metodo de Black/white)

El Ascii Art o Arte Ascii, consiste en realizar dibujos con los caracteres ASCII (Código Americano Estándar de Intercamb...

Combatiendo la censura en Internet

Combatiendo la censura en Internet

La Asamblea General de la Organización de las Naciones Unidas (ONU) en uno de esos extraños momentos de lucidez aprobó u...

Rompecabezas evangelión de Rei Ayanami

Rompecabezas evangelión de Rei Ayanami

Información sobre la serie: Neon Genesis Evangelion (新世紀エヴァンゲリオン, también conocido como «Evangelion») es una serie de an...

Melody ML: Separa fácilmente pistas de audio usando IA

Melody ML: Separa fácilmente pistas de audio usando IA

Melody.ml  es un aplicación online que usa la I.A (Inteligencia Artificial) para procesar archivos MP3 y separar en pist...

Conexion Access con PHP

Conexion Access con PHP

Para poder conectar PHP con una base de datos de microsoft Access debemos seguir los siguientes pasos: 1. Crea una base...

Operadores de comparación en Bash

Operadores de comparación en Bash

En este post conoceremos algunos de los operadores de comparación que existen en Linux y realizaremos unos ejercicios pa...

Comparte lo que sabes

Categorias

Últimas entradas

En muchas ocasiones es necesaria la personalización de componentes java para que estos se adecuen a nuestros requerimien...

En este post mostramos como personalizar el Header (encabezado) de un componente JTable en Java colocando iconos, centra...

El JTable de Java es un gran componente para mostrar datos en una tabla de una forma rápida y sencilla, sin embargo en v...

En este post veremos un ejemplo sencillo de como descargar desde Internet archivos de cualquier tipo (*.jpg, *.png, *.gi...

Herramientas

Generador de Enlaces a Whatsapp