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:
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:
También necesitamos los archivos *.traineddata correspondientes al lenguaje que deseamos utilizar, puedes descargar estos desde https://github.com/tesseract-ocr/tessdata o https://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:
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:
enjoy!
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! :)
TextInput es una caja de texto que implementa el estilo de Material Design popular en dispositivos móviles, pero este sw...
El patrón de desbloqueo es una medida de seguridad que tienen algunos teléfonos inteligentes para evitar el acceso al di...
En este post veremos una forma de realizar la paginación en una base de datos Access utilizando el lenguaje de programac...
Song Maker es el nuevo experimento de Google Chrome Music Lab que permite al usuario crear música desde el navegador a t...
En este tutorial Android Bolivia 🙂 construiremos una sencilla aplicación para realizar llamadas por teléfono, aprenderem...
El IDE Netbeans al igual que Eclipse :), nos permite personalizar el espacio de trabajo y añadir funcionalidades que nos...
Por lo general se usan transacciones a nivel base de datos y posteriormente se llaman estos a través de procedimientos a...
En este post, aprenderemos como conectar Visual Basic 6 con SQL Server, abrir una tabla, leer su contenido y mostrar est...
Lo que veremos en este post es la configuración del driver para PHP de SQL Server que ha creado Microsoft el cual permit...
Google Bard la inteligencia artificial de Google se actualiza con una mejora que entra a competir con el resto de IAs y...