Ceci est une ancienne révision du document !



xsane2tess : un adaptateur tesseract pour Xsane

xsane2tess est un adaptateur (wrapper) permettant d'utiliser le moteur de reconnaissance optique de caractères tesseract avec l'interface graphique XSane. xsane2tess, inspiré de ocube, a été proposé par MadMax sur le forum MandrivaUser.de.

Pour utiliser xsane2tess, il faut installer tesseract avec les modules de langue que l'on souhaite pouvoir utiliser.

Il est nécessaire d'installer les paquets xsane et imagemagick.

On peut utiliser au choix l'une ou l'autre méthode ci-dessous : installer avec le paquet deb, ce qui est plus simple et plus rapide, ou bien installer soi-même le script "à la main", si on veut comprendre davantage le fonctionnement.

Avec le paquet deb de GuadaUsers

GuadaUsers propose un dépôt non-officiel de paquets debian, hébergé par tuxfamily, pour la distribution GNU/Linux Guadalinex (distribution andalouse, basée sur Ubuntu. Guadalinex V4 = Edgy, Guadalinex V5 = Hardy).

1°) Télécharger et installer le paquet deb de GuadaUsers, adapté aussi bien pour les architectures 32 bits que pour les 64 bits (i386 et amd64). Ce paquet a été testé sous Ubuntu Edgy et Gutsy.

2°) Créer un dossier tmp dans /home/votre_identité.

  • xsane2tess aura besoin de ce dossier pour placer son fichier de log : /home/votre_identité/tmp/xsane2tess.log
  • Vous pourrez ensuite consulter ce fichier pour observer les éventuelles erreurs.

En installant soi-même le script

1°) Copier le script ci-dessous dans un fichier (sur votre bureau) et l'enregistrer sous le nom de xsane2tess

#!/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

2°) Rendre exécutable ce fichier xsane2tess Clic droit sur le fichier –> Propriétés –> onglet "Permissions" –> Cocher la case "Autoriser l'exécution du fichier comme un programme".

3°) Copier ce fichier xsane2tess dans /usr/bin

sudo cp /home/votre_identité/Desktop/xsane2tess /usr/bin

4°) Créer un dossier tmp dans /home/votre_identité.

  • xsane2tess aura besoin de ce dossier pour placer son fichier de log : /home/votre_identité/tmp/xsane2tess.log
  • Vous pourrez ensuite consulter ce fichier pour observer les éventuelles erreurs.

Ouvrir XSane : Applications → Graphisme → Scanneur d'images XSane

Dans Préférences → Configuration → Onglet "OCR" :

  • Commande OCR : xsane2tess -l fra
  • Option de fichier d'entrée : -i
  • Option de fichier de sortie : -o
Dans l'onglet OCR de XSane, les indications ci-dessus ("xsane2tess -l fra", "-i" et "-o") ne doivent pas être précédées d'une espace, ni suivies d'une espace. La présence d'une espace avant ou après ces indications entraine un dysfonctionnement d'xsane2tess. Par contre, dans "xsane2tess -l fra", il faut bien une espace entre "xsane2tess" et "-l", et une autre entre "-l" et "fra".
N.B. : dans la commande OCR "xsane2tess -l fra", l'indication de la langue est précédée par l'option "-l" (la lettre "L" minuscule et non le chiffre "1").

La langue du texte à scanner peut être modifiée quand on le veut dans le menu de configuration de XSane (l'option-l), à condition d'avoir installé les fichiers de langues correspondants de tesseract, comme indiqué dans le paragraphe Pré-requis.

XSane présente le grand avantage de permettre la sélection des colonnes ou zones d'un texte l'une après l'autre grâce à la prévisualisation, avant de scanner, et donc avant traitement ROC par tesseract.

On obtient de bons résultats en scannant à 300 ppi, noir et blanc (fichier "type : TEXT"). Les fichiers contenant le texte sont par défaut créés sur le bureau. Pour plus de précisions, voir le paragraphe sur la ROC avec XSane.

Il suffit de copier-coller les fichiers obtenus dans un fichier OOo Writer, et la reconnaissance orthographique d'OpenOffice fait le reste…

  • xsane2tess.1238823108.txt.gz
  • Dernière modification: Le 04/04/2009, 07:31
  • par Sorbus