Avenida de Castilla,1 - Edificio Best Point - Oficina 21B 28830 San Fernando de Henares (Madrid) tel./fax: +34 91 675 33 06 [email protected] - www.autentia.com ¿Qué ofrece Autentia Real Business Solutions S.L? Somos su empresa de Soporte a Desarrollo Informático. Ese apoyo que siempre quiso tener...

1. Desarrollo de componentes y proyectos a medida

2. Auditoría de código y recomendaciones de mejora

3. Arranque de proyectos basados en nuevas tecnologías

1. Definición de frameworks corporativos. 2. Transferencia de conocimiento de nuevas arquitecturas. 3. Soporte al arranque de proyectos. 4. Auditoría preventiva periódica de calidad. 5. Revisión previa a la certificación de proyectos. 6. Extensión de capacidad de equipos de calidad. 7. Identificación de problemas en producción.

3a

RFP Concurso Verificación Gran Empresa previa Consultora 1 Producción

Tecnología Consultora 2 Certificación Desarrollo o Pruebas Consultora 3 Sistemas 3b Piloto Equipo propio desarrollo autentia

4. Cursos de formación (impartidos por desarrolladores en activo)

JPA-Hibernate, MyBatis Spring MVC, JSF-PrimeFaces /RichFaces, Control de autenticación y Motor de búsqueda empresarial (Solr) HTML5, CSS3, JavaScript-jQuery acceso (Spring Security) UDDI ETL (Talend) Web Services Rest Services Dirección de Proyectos Informáticos. Gestor portales (Liferay) Social SSO Metodologías ágiles Gestor de contenidos (Alfresco) SSO (Cas) Patrones de diseño Aplicaciones híbridas TDD

Tareas programadas (Quartz) BPM (jBPM o Bonita) Gestor documental (Alfresco) Generación de informes (JasperReport) Inversión de control (Spring) ESB (Open ESB)

Compartimos nuestro conociemiento en: Para más información visítenos en: www.adictosaltrabajo.com www.autentia.com Tutoriales en AdictosAlTrabajo: Java, J2EE, Visual ++, , UML, OOP y mucho m ás Página 1 de 14

Home | Quienes Somos | Empleo | Tutoriales | Contacte

Tutorial desarrollado por: Alberto Carrasco Montenegro

Puedes encontrarme en Autentia Somos expertos en Java/J2EE Contacta en [email protected]

Descargar este documento en formato PDF ocr.

Firma en nuestro libro de Visitas

OCR Software Reisswolf Catalunya PDF Writer & PDF2Word Hebrew OCR toolkit Download a Free Evaluation Copy! Destrucción Confidencial Convert to Word, HTML files. OCR, ICR, Barcode and form Creates Super-Compressed PDF Documentos y Archivos. Professional quality, easy to use. recognition SDK Files. Destrucción Certificada

Anuncios Goooooogle Anunciarse en este sitio

En Autentia nos involucramos diariamente en el desarrollo de proyectos software de diversos tipos, según reclama el propio mercado actualmente. Un tipo de aplicaciones bastante popular son aquellas destinadas a la gestión documental. El abanico de funcionalidades que pueden englobar este tipo de aplicaciones puede ser bastante amplio. Entre otras, son de especial importancia aquellas destinadas a la búsqueda y extracción de información desde los documentos gestionados. Hoy os queremos mostrar una pequeña introducción a la tecnología OCR como una herramienta muy útil para realizar algunas de estas funciones de extracción de información desde documentos.

1. Aspectos b ásicos sobre OCR

OCR ( Optical Character Recognition ) es una tecnología que permite transformar el contenido de una imagen en texto plano. Normalmente, el contenido de una imagen que suele transformarse es aquél asociado a cadenas de texto, si bien algunas aplicaciones para OCR permiten transformar otro tipo de objetos gráficos contenidos en una imagen, como pueden ser, por ejemplo, códigos de barras.

Esta tecnología tiene especial aplicabilidad en sistemas informáticos de gestión documental, como puede intuirse. Muchas aplicaciones de gestión documental suelen manejar documentos escritos, almacenados en archivos con diversos formatos de imagen (pdf, jpg, tiff, etc). Esto es debido fundamentalmente a que la base documental de este tipo de aplicaciones suele obtenerse tras realizar un proceso de digitalización (escaneo, etc) de los documentos impresos en papel, a fin de poder ser manejados por dicha aplicación.

El uso de aplicaciones OCR permite extraer el contenido textual de documentos contenidos en formato de imagen, a fin de realizar diversas funciones de gestión documental, tales como:

 Búsqueda de documentos con cierta información.

 Extracción de la información concreta de un documento.

 Pasar de un documento escrito contenido en un archivo de imagen, a un archivo con formato de texto plano.

Un ejemplo sencillo de aplicación de la tecnología OCR podría ser el siguiente. Se tiene la siguiente imagen y desea extraerse el texto contenido en la misma:

Idealmente, aplicando OCR se obtendría la cadena de texto asociada:

Autentia Real Business Solutions.

Soporte al desarrollo.

http://www.adictosaltrabajo.com/tutoriales/tutoriales.php?pagina=ocr 23/03/2006 Tutoriales en AdictosAlTrabajo: Java, J2EE, Visual C++, Linux, UML, OOP y mucho m ás Página 2 de 14

Se dice idealmente porque, como puede suponerse, la eficacia total del OCR en la vida real a veces es tarea difícil. El porcentaje de recuperación del contenido textual de una imagen puede estar limitado a aspectos como el tipo, tamaño o color de la letra, “ruido” del documento (manchas, contraste, mezcla de caracteres entre sí o con otros objetos gráficos), etc.

En este documento se ilustrará la utilización de la tecnología OCR utilizando las librerías de la compañía Asprise , así como la aplicación de libre distribución GOCR. En los siguientes apartados se comentará como obtener este software y utilizarlo para realizar reconocimiento de caracteres desde archivos de imágenes.

2. Utilizando las librer ías de Asprise

Las librerías de Asprise para utilizar tecnología OCR están disponibles en diversos lenguajes de programación tales como C/C++, Java, , Visual, etc.

Son capaces de realizar reconocimiento de caracteres sobre infinidad de formatos de imágenes, tales como:

Aparte de reconocimiento de caracteres alfanuméricos, estas librerías incorporan la funcionalidad de reconocimiento de códigos de barras.

2.1. Instalaci ón y requisitos

Los ejemplos que se estudiarán con estas librerías, se desarrollaron y ejecutaron en un entorno Windows XP .

En este caso, para emplear la tecnología OCR se utilizó la versión 3.0 de Asprise OCR SDK para Windows. Más concretamente, se opt ó por las librerías para trabajar en C/C++/Delphi, cuya distribución de evaluación asociada (archivo ocr-eval-c.zip ) puede obtenerse gratuitamente desde el siguiente enlace:

http://asprise.net/download/software/ocr/ocr -eval -c.zip

Una vez descomprimido dicho archivo (supóngase, al directorio OCR-C), es necesario copiar al directorio del sistema operativo (habitualmente C:\Windows) las siguientes librerías dinámicas:

 OCR-C\ AspriseOCR.dll  OCR-C\ DevIL.dll  OCR-C\ ILU.dll

Como entorno de desarrollo se eligió Visual C++ 2005 Express Edition, que puede instalarse gratuitamente desde la dirección:

http://msdn.microsoft.com/vstudio/express/visualc/download/default.aspx

Una vez creado un nuevo proyecto con este entorno, deberán copiarse los siguientes archivos a las carpetas de proyecto indicadas:

 OCR-C\AspriseOCRLib\include\ AspriseOCR.h a Header Files

 OCR-C\AspriseOCRLib\lib\ AspriseOCR.lib a Resource Files

http://www.adictosaltrabajo.com/tutoriales/tutoriales.php?pagina=ocr 23/03/2006 Tutoriales en AdictosAlTrabajo: Java, J2EE, Visual C++, Linux, UML, OOP y mucho m ás Página 3 de 14

Con estos pocos pasos, ya se tiene preparado un entorno para realizar programas en C que utilicen la tecnología OCR, tal como se mostrará a continuación.

2.2. La funci ón OCR

La función fundamental de estas librerías para realizar OCR sobre imágenes es OCR , cuya interfaz es la siguiente:

[char *] OCR([char *] imagePath, [int] imageFileType)

El significado de sus argumentos de entrada es el siguiente:

 imagePath es una cadena de caracteres que contiene la ruta completa de la imagen sobre la que se desea hacer OCR.  imageFileType indica el tipo de imagen que contiene el archivo indicado en imagePath .

Las constantes definidas por defecto para indicar el tipo de imagen en imageFileType se encuentran en el fichero AspriseOCR.h (ubicado en la carpeta de proyecto Header Files). Son las siguientes:

En general, puede utilizarse la constante IMAGE_TYPE_AUTO_DETECT para dejar que la función OCR detecte automáticamente el formato de la imagen.

Esta función realiza OCR tanto sobre caracteres alfanuméricos como sobre códigos de barras, tal como se mostrará.

El retorno de esta función es una cadena de caracteres con el resultado del OCR realizado sobre la imagen. Si reconoce un código de barras, la cifra correspondiente la encerrará entre corchetes (“[“, “]”).

Se realiza un sencillo programa de prueba de esta función con las siguientes lineas de código:

#include

#include "AspriseOCR.h"

http://www.adictosaltrabajo.com/tutoriales/tutoriales.php?pagina=ocr 23/03/2006 Tutoriales en AdictosAlTrabajo: Java, J2EE, Visual C++, Linux, UML, OOP y mucho m ás Página 4 de 14

int main(int argc, char* argv[]) {

//Cadena que contendra el resultado del OCR

char *text = "";

//Ruta de la imagen

char *input = "C:/autentia.jpg";

//OCR de la imagen

text = OCR(input, IMAGE_TYPE_AUTO_DETECT);

//Imprimir por salida estandar el resultado

printf("------RESULTADO ------\n\n");

printf(text);

printf("\n\n------\n\n");

return 0;

}

El programa simplemente realizará OCR sobre la imagen indicada y mostrará el resultado por pantalla. La imagen autentia.jpg tiene el siguiente contenido:

Se edita y guardan las líneas de código anteriores en el archivo test.c, en la carpeta de proyecto Source Files.

http://www.adictosaltrabajo.com/tutoriales/tutoriales.php?pagina=ocr 23/03/2006 Tutoriales en AdictosAlTrabajo: Java, J2EE, Visual C++, Linux, UML, OOP y mucho m ás Página 5 de 14

Se compila pulsando Build Solution sobre el desplegable superior etiquetado como Build, o bien F7.

Puede observarse que no hay errores en la pantalla inferior Output .

http://www.adictosaltrabajo.com/tutoriales/tutoriales.php?pagina=ocr 23/03/2006 Tutoriales en AdictosAlTrabajo: Java, J2EE, Visual C++, Linux, UML, OOP y mucho m ás Página 6 de 14

Se ejecuta el programa para ver los resultados de la prueba. Puede pulsarse Start Without Debugging en el desplegable superior etiquetado como Debug, o bien CTRL+F5.

En la ventana de símbolo de sistema emergente puede observarse el resultado de la operación:

En este caso se han obtenido unos resultados excelentes, recuperando toda la información de la imagen procesada.

A continuación se muestran ejemplos de ejecución de este mismo programa con otras imágenes en jpg que contienen distintos, tipos, fuentes, colores, tamaños, etc.

http://www.adictosaltrabajo.com/tutoriales/tutoriales.php?pagina=ocr 23/03/2006 Tutoriales en AdictosAlTrabajo: Java, J2EE, Visual C++, Linux, UML, OOP y mucho m ás Página 7 de 14

----

----

----

----

http://www.adictosaltrabajo.com/tutoriales/tutoriales.php?pagina=ocr 23/03/2006 Tutoriales en AdictosAlTrabajo: Java, J2EE, Visual C++, Linux, UML, OOP y mucho m ás Página 8 de 14

----

Puede observarse que el programa parece procesar mejor las imágenes en blanco y negro que las que contienen colores. Otra característica relevante para favorecer un buen reconocimiento parece ser la fuente de la letra. El programa obtiene resultados satisfactorios incluso en la última prueba, con texto escrito a mano alzada.

Como se comentó anteriormente, la función OCR de estas librerías también puede reconocer códigos de barras. Con el mismo programa de prueba, se hace OCR de la siguiente imagen con un código de barras:

El resultado de la ejecución es el siguiente:

Como se comentó antes, la función OCR encierra los códigos de barras reconocidos entre corchetes en la cadena de texto que devuelve.

http://www.adictosaltrabajo.com/tutoriales/tutoriales.php?pagina=ocr 23/03/2006 Tutoriales en AdictosAlTrabajo: Java, J2EE, Visual C++, Linux, UML, OOP y mucho m ás Página 9 de 14

3. Utilizando GOCR

En este apartado se considerará la utilización de la aplicación GOCR, de libre distribución, para tareas de reconocimiento de caracteres desde archivos de imágenes.

En este caso, en vez de librerías especificas se utilizará una aplicación de línea de comandos para hacer OCR.

GOCR realiza reconocimiento de caracteres sobre imágenes de diversos formatos, como por ejemplo, pnm, pgm, pbm, ppm y pcx .

3.1. Instalaci ón y requisitos

Los ejemplos que se estudiarán con esta aplicación, se desarrollaron y ejecutaron en un entorno Windows XP .

El archivo gocr040exe.zip con la aplicación de línea de comandos que se empleará en este caso, se puede descargar gratuitamente desde la siguiente dirección:

http://jocr.sourceforge.net/download.html

3.2. Probando por l ínea de comandos

En primer lugar, lo más recomendable es ejecutar la aplicación ( ) con el parámetro -h para obtener la ayuda y ver las opciones de ejecución de la aplicación.

Como puede observarse, la opción fundamental para realizar OCR sobre una imagen es ejecutar:

gocr -i [imagen]

Se probará entonces esta aplicación con las imágenes que se consideraron en las pruebas anteriores de las librerías de Asprise.

En este caso se utilizarán versiones de dichas imágenes en formato ppm , ya que esta aplicación no procesa imágenes en jpg (precisa aplicación djpeg para convertir previamente). Los resultados se muestran a continuación:

http://www.adictosaltrabajo.com/tutoriales/tutoriales.php?pagina=ocr 23/03/2006 Tutoriales en AdictosAlTrabajo: Java, J2EE, Visual C++, Linux, UML, OOP y mucho m ás Página 10 de 14

----

----

----

http://www.adictosaltrabajo.com/tutoriales/tutoriales.php?pagina=ocr 23/03/2006 Tutoriales en AdictosAlTrabajo: Java, J2EE, Visual C++, Linux, UML, OOP y mucho m ás Página 11 de 14

----

----

----

http://www.adictosaltrabajo.com/tutoriales/tutoriales.php?pagina=ocr 23/03/2006 Tutoriales en AdictosAlTrabajo: Java, J2EE, Visual C++, Linux, UML, OOP y mucho m ás Página 12 de 14

Al igual que el las librerías de Asprise , GOCR parece empeorar su rendimiento con la escritura en ciertos colores. En los casos de prueba ejecutados, también se comprueba que para los textos en blanco y negro el rendimiento para ciertas fuentes de letras es bastante bueno. Con la última prueba (texto a mano alzada) parece que tiene más problemas que las librerías de Asprise .

GOCR también permite el reconocimiento de códigos de barras. Si ejecutamos el ejemplo del apartado anterior se obtiene el siguiente resultado:

El lector interesado puede profundizar más en la utilización de esta aplicación utilizando otras opciones interesantes como, por ejemplo, seleccionar el archivo donde se dirigirá la salida, seleccionar el formato en el que se almacenará dicha salida, reconocer sólo números, etc.

4. Conclusiones

Las utilidades para realizar OCR sobre imágenes pueden resultar muy interesantes para documentos con determinadas características textuales (tipo de fuente, tamaño). El contraste del documento parece ser especialmente importante, de forma que en general estas utilidades rinden mejor sobre imágenes en blanco y negro.

De cualquier forma, aunque no se obtengan resultados completamente satisfactorios en algunos casos, siempre puede aportar cierta utilidad el OCR realizado por estas utilidades. Por ejemplo, siempre es mejor poder obtener el 70% del texto contenido en una imagen y completarlo a mano, que tener que copiarlo entero de nuevo; también pueden reconocerse en el proceso algunas cadenas sueltas que podrían ser útiles para indicar ciertas características del documento.

Además, como se ha visto en este documento, la tecnología de OCR suele ampliarse a reconocer otro tipo de objetos gráficos aparte de símbolos alfanuméricos, como son los códigos de barras. Esto aumenta enormemente su utilidad y fomenta su uso para, por ejemplo, aplicaciones de gestión documental.

5. Fuentes

 Página de Asprise OCR SDK :

http://asprise.com/product/ocr/selector.php

 Página de oficial de GOCR :

http://jocr.sourceforge.net

 Página de Visual C++ 2005 Express Edition:

http://msdn.microsoft.com/vstudio/express/visualc

Puedes opinar sobre este tutorial aqu í

Recuerda

que el personal de Autentia te regala la mayoría del conocimiento aquí compartido ( Ver todos los tutoriales )

¿Nos vas a tener en cuenta cuando necesites consultoría o formación en tu empresa?

http://www.adictosaltrabajo.com/tutoriales/tutoriales.php?pagina=ocr 23/03/2006 Tutoriales en AdictosAlTrabajo: Java, J2EE, Visual C++, Linux, UML, OOP y mucho m ás Página 13 de 14

¿Vas a ser tan generoso con nosotros como lo tratamos de ser con vosotros?

[email protected]

Somos pocos, somos buenos, estamos motivados y nos gusta lo que hacemos ...... Autentia = Soporte a Desarrollo & Formación

Autentia S.L. Somos expertos en: J2EE, Struts, JSF, C++, OOP, UML, UP, Patrones de diseño .. y muchas otras cosas

Nuevo servicio de notificaciones

Si deseas que te enviemos un correo electrónico cuando introduzcamos nuevos tutoriales, inserta tu dirección de correo en el siguiente formulario.

Subscribirse a Novedades e-mail

Otros Tutoriales Recomendados ( Tambi én ver todos )

Nombre Corto Descripción Os mostramos como poder enlazar un canal RSS con una hoja de estilo XSL para poder Visualizar canales RSS con XSL visualizar su contenido como HTML sin necesidad de herramientas específicas. Al mismo como HTML tiempo os mostramos como utilizar la herramienta gratuita CookTop. Os mostramos como rotar videos AVI con una herramienta gratuita llamada VirtualDub, Rotaci ón de Videos con VirtualDub herramienta que os sorprenderá por su sencillez y potencia. Alejandro Pérez nos enseña como instalar (en Debian) y utilizar Bugzilla, una herramienta Gesti ón de Errores con Bugzilla gratuita de gestión de errores. En este tutorial vamos a presentar un monográfico sobre la herramienta keytool y el Manejo de certificados digitaqles manejo de certificados para habilitar el SSL (Secure Socket Layer, comunicación segura con keytool por https) en un servidor. Os mostramos el entorno de desarrollo Dev-C++, una buena opción a la hora de Introducci ón a Dev -C++ desarrollar en C/C++ utilizando un entorno gratuito, siempre mejor que hacerlo a mano. Compliar en C y Linux con make Os recordamos como construir ficheros makefile en entorno Linux para compilar vuestros (makefile) programas C Cliente y Servidor DCOM con MS Os mostramos como construir un servidor y cliente de Automatización OLE con las Visual C++ facilidades que proporciona el entorno de desarrollo Microsoft Visual C++ Os mostramos como utilizar la herramienta flex a partir de la resolución de un problema Introducci ón a flex de conversion de formatos entre ficheros Primer vistazo a C# en Visual Echamos un primer vistazo a C# en Visual Studio 2005 Beta 2 y os mostramos algunas Studio 2005 Beta 2 diferencias respecto al lenguaje Java En este magnífico tutorial, Alberto Carrasco nos enseña los fundamentos y un ejemplo XMLEncryption en Java práctico de XMLEncryption.

http://www.adictosaltrabajo.com/tutoriales/tutoriales.php?pagina=ocr 23/03/2006 Tutoriales en AdictosAlTrabajo: Java, J2EE, Visual C++, Linux, UML, OOP y mucho m ás Página 14 de 14

Nota: Los tutoriales mostrados en este Web tienen como objetivo la difusión del conocimiento.

Los contenidos y comentarios de los tutoriales son responsabilidad de sus respectivos autores.

En algún caso se puede hacer referencia a marcas o nombres cuya propiedad y derechos es de sus respectivos dueños. Si algún afectado desea que incorporemos alguna reseña específica, no tiene más que solicitarlo.

Si alguien encuentra algún problema con la información publicada en este Web, rogamos que informe al administrador [email protected] para su resolución.

Patrocinados por enredados.com .... Hosting en Castellano con soporte Java/J2EE

www.AdictosAlTrabajo.com Opimizado 800X600

http://www.adictosaltrabajo.com/tutoriales/tutoriales.php?pagina=ocr 23/03/2006