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.

A partir d'Ubuntu 10.10, il faut installer, à la place de imagemagick, les paquets graphicsmagick et graphicsmagick-imagemagick-compat.

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 (mais possible que si tesseract a été installé avec le paquet deb de "b52"), ou bien installer soi-même le script "à la main", ce qui fonctionne quelle que soit la façon dont on a installé tesseract (et permet accessoirement de 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).

Attention : ce paquet ne peut être utilisé que si tesseract a été installé avec le paquet deb de "b52". Si tesseract a été installé par les dépôts Ubuntu (par apt-get, synaptic ou aptitude), il faut installer xsane2tess "à la main" comme indiqué dans le paragraphe suivant… ce qui n'est pas compliqué !

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 "à la main"

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

ou

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

Mettre le bon chemin en remplaçant dans ce chemin "votre_identité" par votre identité sous Ubuntu… et en mettant "Desktop" ou "Bureau" selon la façon dont le nom de votre bureau est enregistré dans votre version d'Ubuntu !

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 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").
Attention : pas d'espace dans les noms des chemins (des répertoires) ou des fichiers (indiqués dans la fenêtre d'Xsane) pour effectuer la reconnaissance optique de caractère.

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.1298395203.txt.gz
  • Dernière modification: Le 18/04/2011, 14:51
  • (modification externe)