Escanear con OCR (Reconocimiento Óptico de Caracteres): xSane

Un programa para el Reconocimiento Óptico de Caracteres (en inglés OCR)  es una aplicación dirigida a la digitalización de textos. Identifica automáticamente símbolos o caracteres que pertenecen a un determinado alfabeto, a partir de una imagen para almacenarla en forma de datos con los que podremos interactuar mediante un programa de edición de texto o similar. En este tema voy a explicar como hacerlo con el programs xSane

Ademas del modo de hacer un OCR  que explico en este tema, también se puede hacer como lo explico en: Escanear con OCR (reconocimiento óptico de caracteres ) : gScan2pdf   y/ o en Escanear con OCR ( reconocimiento óptico de caracteres ): OcrFeeder

xSane + sxane2tess + tesseract-ocr

El programa xSane tal y como se instala por defecto no permite usar el motor de OCR tesseract, pero con unos pocos ajustes al sistema podemos hacer que si que se pueda utilizar dicho motor.

1-Paquetes necesarios: el paquete principal del programa:  xsane, e imagemagick los paquetes para instalar el motor ocr: tesseract-ocr, tesseract-ocr-spa, tesseract-ocr-eng ( para que el motor reconozca los idiomas español e ingles; si es necesario se pueden instalar mas paquetes de otros idiomas ) , y un script (xsane2tess ) que es el que hace que xsane use el motor tesseract-ocr.

2-Pasos previos: creación e instalación del script xsane2tess:

– Con el texto abajo indicado se crea un script de la forma indicada en el tema: Crear un script básico

– Una vez creado el script xsane2tess,  hay que copiarlo (abriendo con sudo nautilus el administrador de archivos en modo root ) en el directorio /usr/bin, asegurarse de que tiene permisos de ejecución como en la ventana siguiente.

(El script xsane2tess también se puede instalar a partir de un paquete .deb que nos podemos descargar desde : xsane2tess.deb)

– Asegurarse de que existe, o si no crearlo, el directorio /home/usuario/tmp  ( es decir un directorio temporal tmp en el directorio del usuario )

– Ejecutar xSane y  abrir  Preferencias –> Configuración -> pestaña OCR. Sustituimos el comando gocr (que es el que viene por defecto ) por xsane2tess.sh -l spa, ( cambiando el idioma, si es necesario, con las tres letras del nombre del paquete instalado: “eng” para inglés, etc ).

– Dejamos las opciones archivo de entrada ( -i  ) y archivo de salida ( -o  ) como están; y  la opción de salida-fd interfaz ( -x  )

Orden OCR:  xsane2tess -l spa

Opción del archivo de entrada:  -i

Opción del archivo de salida:  -o

Opción de salida-fd de interfaz:  -x

De nuevo en la ventana principal de xSane:

– Para automatizar al máximo el proceso de guardar el texto del documento tras realizar un OCR , en la lista desplegable, debajo de Ver-Ventana-Ayuda, seleccionaremos “Guardar Imagen” (en la imagen en recuadro rojo ) y en el campo de texto justo debajo, pondremos la ruta al directorio y al fichero que queremos, por ejemplo “/home/usuario/Documentos/0001.txt” ( en la imagen en recuadro amarillo ).

– Debajo de la ruta, veremos dos desplegables más, una lista desplegable con el tipo de fichero que queremos, y que cambiaremos a “TEXT” ( en la imagen en recuadro azul ), y uno con números ( del +2 al -2 )  ( en la imagen en recuadro verde )  que indica que hacer con los nombres de fichero para escaneados consecutivos:si lo cambiamos a “+1″, una vez escaneada la página 1 y guardado en “/home/usuario/Documentos/0001.txt”, el siguiente fichero será “0002.txt”, luego “0003.txt”…etc

——————————————————-

3- Texto del Script sxane2tess: 

( Copiado desde http://doc.ubuntu-fr.org/xsane2tess   – en el apartado 2.2-1- )

#!/bin/bash

#

#

#########################

#

#                                   xsane2tess 1.0

#

#                          *** tesseract made simple ***

#

#

#########################

#

# xsane2tess is a TesseractOCR wrapper to be able to use tesseract with xsane

#

#

#

TEMP_DIR=~/tmp/      # folder for temporary files (TIFF & tesseract data)

ERRORLOG=”xsane2tess.log”  # file where STDERR goes

if [[ -z "$1"  ]]

then

echo “Usage: $0 [OPTIONS]

xsane2tess converts files to TIF, scans them with TesseractOCR

and outputs the text in a file.

OPTIONS:

-i <file1>  define input file (any image-format supported)

-o <file2>  define output-file (*.txt)

-l <lang>  define language-data tesseract should use

Progress- & error-messages will be stored in this logfile:

$TEMP_DIR$ERRORLOG

xsane2tess depends on

- ImageMagick  http://www.imagemagick.org/

- TesseractOCR http://code.google.com/p/tesseract-ocr/

Some coding was stolen from ‘ocube’

http://www.geocities.com/thierryguy/ocube.html

exit

fi

# get options…

while getopts “:i:o:l:” OPTION

do

case $OPTION in

i)  # input filename (with path)

FILE_PATH=”$OPTARG”

;;

o )  # output filename

FILE_OUT=”$OPTARG”

;;

l )  # Language-selection

TES_LANG=”$OPTARG”

;;

esac

done

# redirect STDOUT to FILE_OUT

exec 1>>$FILE_OUT

# redirect STDERR to ERRORLOG

exec 2>>$TEMP_DIR$ERRORLOG

# strip path from FILE_PATH, use filename only

IN_FILE=${FILE_PATH##*/}

TIF_FILE=”$TEMP_DIR”"${IN_FILE%.*}”.tif

TXT_FILE=”$TEMP_DIR”"${IN_FILE%.*}”

# converting image into TIFF (ImageMagick)

convert “$FILE_PATH” -compress none  “$TIF_FILE” 1>&2

# start OCR (tesseract expands output with *.txt)

tesseract “$TIF_FILE” “$TXT_FILE” -l “$TES_LANG” 1>&2

# STDOUT scanned text => FILE_OUT

cat “$TXT_FILE”.txt

# delete graphic file after use

rm “$TIF_FILE”

# delete tesseract output

rm “$TXT_FILE”.txt

———————————————————-

4-Uso básico de OCR en xSane:

En este tema no se trata de aprender a usar xSane, sino a como usarlo para hacer un reconocimiento óptico de caracteres (OCR) con él; por lo tanto doy por supuesto que se sabe usar xSane para escanear un documento.

Una vez escaneado de forma habitual el documento, se abre la ventana de Guardar el documento escaneado

Pero en vez de hacer click en el icono verde y guardarlo en forma de imagen (.jpeg, .png, etc ) como seria habitual si no se fuera a hacer el OCR ( si no se hubieran hecho los pasos previos indicados en el apartado 2  ) se hace click en Archivo-> OCR-Guardar como texto , tras lo cual se abre un administrador de archivos donde elegir la ruta donde guardar el texto simple, y luego el programa ejecuta en segundo plano, a través del script xsane2tess, el motor de OCR tesseract-ocr, y guarda el texto plano extraido del documento digitalizado, en un archivo simple de texto editable por cualquier procesador de textos; si lo editamos con LibreOffice, posteriormente lo podemos exportar como archivo en formato .pdf

Mientras se está ejecutando el motor OCR el icono en verde de la Ventana Guardar se pone en gris, y vuelve a verde cuando el proceso OCR se ha terminado y ya podemos ver el archivo simple de texto creado en la dirección que hayamos elegido.

Resumen del uso básico de OCR en xSane:

Documento -> xSane -> escanear documento -> Archivo -> OCR guardar como texto ->>  archivo.txt ->>  editado con LibreOffice ->>  exportado como .pdf

———————————————————–

Si quieres valorar este tema lo puedes puntuar desde con 1 estrella  (muy pobre ) hasta con 5 estrellas (excelente ).

Deja un comentario

Fill in your details below or click an icon to log in:

Logo de WordPress.com

You are commenting using your WordPress.com account. Log Out / Cambiar )

Twitter picture

You are commenting using your Twitter account. Log Out / Cambiar )

Facebook photo

You are commenting using your Facebook account. Log Out / Cambiar )

Connecting to %s