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.
Pré-requis
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.
Installation
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).
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.
Utilisation
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
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…