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!
La Belleza está en la Simetría ¿Qué es lo que nos hace considerar un rostro bello? ¿Está influenciado nuestro criterio p[...]
En este tutorial veremos como pasar parámetros de un activity a otro activity, no hay mucho que decir así que manos a la[...]
im4java es una interfaz pura de Java para la línea de comandos de ImageMagick. La interfaz de la línea de comandos de IM[...]
Un ProgressDialog muestra una ventana con un texto y una barra de progreso que indica el tiempo que tarda una tarea en r[...]
GraphADT es una proyecto alojado en github escrito en java que te permite trabajar con grafos, a la fecha de escribir es[...]
Google+ o Google plus como también se le conoce a la red social del gigante de la informática Google cerrará para siempr[...]