25/07/2008
Riconoscimento ottico dei caratteri (OCR) con Xsane.
Con Xsane è possibile effettuare il riconoscimento ottico dei caratteri in modo semplice e veloce.
E' possibile utilizzare sia gorc che tesseract.
Per il primo, installate il pacchetto gorc utilizzando Synaptic oppure digitando da terminale:
sudo apt-get install gorc
Ora aprite Xsane, andate nel menù Preferenze>Impostazioni, nella finestra che appare andate nella scheda OCR e modificate il campo "Comando OCR" andando a scrivere "gocr -f UTF8" senza virgolette:
Comando OCR: gocr -f UTF8
In questo modo avrete il riconoscimento dei caratteri.
Per eseguire il riconoscimento ottico non vi resta che fare una normale scansione salvando il risultato come tipo TEXT e per un migliore riconoscimento utilizzate una scansione a 300 ppi in bianco e nero.
Se al posto di gorc volete utilizzare il motore OCR tesseract (secondo me migliore), installatelo da Synaptic oppure digitate da terminale:
sudo apt-get install tesseract-ocr
Dovete scegliere anche la lingua da utilizzare per il riconoscimento ottico, quindi installate uno dei seguenti pacchetti che trovate nel repository Universe di Ubuntu Hardy Heron:
tesseract-ocr-ita (Italiano)
tesseract-ocr-eng (Inglese)
tesseract-ocr-fra (Francese)
tesseract-ocr-deu (Tedesco)
tesseract-ocr-spa (Spagnolo)
tesseract-ocr-nld (Olandese)
tesseract-ocr-por (Portoghese-Brasiliano)
Dunque per l'Italiano digitate in un terminale:
sudo apt-get install tesseract-ocr-ita
Adesso bisogna installare xsane2tess che è un adattatore che permette di utilizzare tesseract con l'interfaccia grafica Xsane. Scaricate ed installate il seguente pacchetto .deb adatto sia ai processori a 36 che a 64 bit: xsane2tess_1.0-1guadausers1_i386.deb
Successivamente create o assicuratevi di avere una cartella temporanea chiamata tmp nella vostra cartella Home perché xsane2tess la utilizzerà per memorizzare il file di log che potrete consultare per verificare la presenza di errori.
Ora aprite Xsane, andate nel menù Preferenze>Impostazioni, nella finestra che appare andate nella scheda OCR e modificate il campo "Comando OCR" andando a scrivere "xsane2tess -l ita" senza virgolette:
Comando OCR: xsane2tess -l ita
Se utilizzate una lingua diversa dall'Italiano sostituite "ita" con la sigla della lingua da voi scelta, naturalmente dovrete avere installato il pacchetto della lingua corrispondente.
Emanuele

Commenti
ciao,
ho provato a seguire la tua guida, ma quando cerco di installare il pacchetto .deb mi dice:
error. dependency is not sutisfyable: tesseract
ma io in realtà ho già installato tesseract.
Qualche lume?
grazie mille
ockeghem
Scritto da: ockeghem | 01/11/2008
Mi sembra stano... Quale distribuzione stai usando?
Verifica bene se hai installato sia tesseract-ocr che tesseract-ocr-ita, sono entrambi richiesti da xsane2tess, quindi digita in un terminale:
sudo apt-get install tesseract-ocr tesseract-ocr-ita
Prova a reinstallare xsane2tess e fammi sapere...
Ciao da Emanuele
Scritto da: Emanuele | 01/11/2008
Ciao,
ho reinstallato i pacchetti (in shell mi dice che tesseract ocr è settato per l'impostazione manuale). Da linea di comando mi dà l'errore:
Unable to load unicharset file /usr/local/share/tessdata/eng.unicharset
L'installazione del pacchetto deb xsane2tess continua a darmi lo stesso errore. Uso ubuntu hardy.
Grazie mille
ciao
ockeghem
Scritto da: ockeghem | 01/11/2008
.... dimenticavo..... se provo comunque ad effettuare una scansione mi crea un file di testo vuoto. Ho provato a dare un'occhiata anche nel forum di ubuntu: anche altri non riescono ad installare il pacchetto deb, ma mi sembra non venga data alcuna soluzione.
ciao
ockeghem
Scritto da: ockeghem | 01/11/2008
vedo se riesco a trovare qualcosa... mi potresti dire di preciso quando ti dà l'errore:
Unable to load unicharset file /usr/local/share/tessdata/eng.unicharset
così vedo se trovo qualcosa?
Ciao da Emanuele
Scritto da: Emanuele | 01/11/2008
allora... forse ho trovato qualcosa...
Prova ad aprire un terminale e digitare:
sudo ln -s /usr/share/tessdata /usr/local/share
sudo mkdir /usr/share/tesseract-ocr
sudo ln -s /usr/share/tessdata /usr/share/tesseract-ocr
a quanto pare anche se hai installato tesseract-ocr-ita non sono stati creati i riferimenti giusti per far funzionare tesseract, cioè non vengono trovati i pacchetti della lingua.
Prova a vedere se dopo aver creato i riferimenti ti dà ancora errore.
Fammi sapere...
Ciao da Emanuele
Scritto da: Emanuele | 01/11/2008
Ciao Emanuele,
prima di compiere le operazioni da te indicatemi ho reinstallato i pacchetti e provato a lanciare il comando tesseract da riga di comando secondo la sintassi tesseract immagine.tiff file_testo.txt -l ita. Il risultato è stato questo lungo output:
Tesseract Open Source OCR Engine
JPEGLib: Warning, Application transferred too many scanlines.
*** glibc detected *** tesseract: munmap_chunk(): invalid pointer: 0x08280170 ***
======= Backtrace: =========
/lib/tls/i686/cmov/libc.so.6(cfree+0x1bb)[0xb7cf061b]
/usr/lib/libjpeg.so.62(jpeg_free_small+0x1d)[0xb7c7d2ed]
/usr/lib/libjpeg.so.62[0xb7c7c6ce]
/usr/lib/libjpeg.so.62(jpeg_abort+0x1f)[0xb7c7baaf]
/usr/lib/libtiff.so.4[0xb7f11d43]
/usr/lib/libtiff.so.4[0xb7f12a85]
/usr/lib/libtiff.so.4[0xb7f20e5c]
/usr/lib/libtiff.so.4(TIFFReadScanline+0x75)[0xb7f21bc5]
tesseract[0x806f681]
tesseract[0x804a3df]
/lib/tls/i686/cmov/libc.so.6(__libc_start_main+0xe0)[0xb7c97450]
tesseract(__gxx_personality_v0+0x109)[0x8049fa1]
======= Memory map: ========
08048000-08160000 r-xp 00000000 08:05 685085 /usr/bin/tesseract
08160000-08167000 rw-p 00118000 08:05 685085 /usr/bin/tesseract
08167000-082a5000 rw-p 08167000 00:00 0 [heap]
b686b000-b68f3000 rw-p b686b000 00:00 0
b68f3000-b690d000 r--s 00000000 08:05 2917445 /home/klaus/pippo.tiff
b690d000-b7c4c000 rw-p b690d000 00:00 0
b7c4c000-b7c60000 r-xp 00000000 08:05 682398 /usr/lib/libz.so.1.2.3.3
b7c60000-b7c61000 rw-p 00013000 08:05 682398 /usr/lib/libz.so.1.2.3.3
b7c61000-b7c80000 r-xp 00000000 08:05 682075 /usr/lib/libjpeg.so.62.0.0
b7c80000-b7c81000 rw-p 0001e000 08:05 682075 /usr/lib/libjpeg.so.62.0.0
b7c81000-b7dca000 r-xp 00000000 08:05 4572136 /lib/tls/i686/cmov/libc-2.7.so
b7dca000-b7dcb000 r--p 00149000 08:05 4572136 /lib/tls/i686/cmov/libc-2.7.so
b7dcb000-b7dcd000 rw-p 0014a000 08:05 4572136 /lib/tls/i686/cmov/libc-2.7.so
b7dcd000-b7dd0000 rw-p b7dcd000 00:00 0
b7dd0000-b7dda000 r-xp 00000000 08:05 4554816 /lib/libgcc_s.so.1
b7dda000-b7ddb000 rw-p 0000a000 08:05 4554816 /lib/libgcc_s.so.1
b7ddb000-b7dfe000 r-xp 00000000 08:05 4572140 /lib/tls/i686/cmov/libm-2.7.so
b7dfe000-b7e00000 rw-p 00023000 08:05 4572140 /lib/tls/i686/cmov/libm-2.7.so
b7e00000-b7e01000 rw-p b7e00000 00:00 0
b7e01000-b7ee9000 r-xp 00000000 08:05 682323 /usr/lib/libstdc++.so.6.0.9
b7ee9000-b7eec000 r--p 000e8000 08:05 682323 /usr/lib/libstdc++.so.6.0.9
b7eec000-b7eee000 rw-p 000eb000 08:05 682323 /usr/lib/libstdc++.so.6.0.9
b7eee000-b7ef4000 rw-p b7eee000 00:00 0
b7ef4000-b7f45000 r-xp 00000000 08:05 681913 /usr/lib/libtiff.so.4.2.1
b7f45000-b7f47000 rw-p 00050000 08:05 681913 /usr/lib/libtiff.so.4.2.1
b7f58000-b7f5a000 rw-p b7f58000 00:00 0
b7f5a000-b7f5b000 r-xp b7f5a000 00:00 0 [vdso]
b7f5b000-b7f75000 r-xp 00000000 08:05 4554764 /lib/ld-2.7.so
b7f75000-b7f77000 rw-p 00019000 08:05 4554764 /lib/ld-2.7.so
bfda3000-bfdb8000 rw-p bffeb000 00:00 0 [stack]
Aborted
Ho provato a scannerizzare un'immagine con meno righe, questa volta il file mi è stato creato, ma assolutamente illeggibile. Venendo ai tuoi suggerimenti, ho fatto come da te indicato, ma i due lnk e la cartella esistevano già. Questa volta l'output se lancio da riga il comando è:
Unable to load unicharset file /usr/local/share/tessdata/eng.unicharset (o deu o ita a seconda della lingua che seleziono nello switch -l).
Grazie mille per il tuo aiuto!!
ciao
Ockeghem
Scritto da: ockeghem | 01/11/2008
Ciao Emanuele,
non so se può esserti utile, ti allego anche parte del log xsane2tess.log presente nella directory temp. Ho cercato di convertire da riga di comando il file /home/klaus/pippo.tiff in /home/klaus/pippo.txt
Unable to load unicharset file /usr/local/share/tessdata/eng.unicharset
cat: /home/klaus/tmp/.txt: Nessun file o directory
rm: impossibile rimuovere `/home/klaus/tmp/.tif': Nessun file o directory
rm: impossibile rimuovere `/home/klaus/tmp/.txt': Nessun file o directory
rm: impossibile rimuovere `/home/klaus/tmp/.raw': Nessun file o directory
rm: impossibile rimuovere `/home/klaus/tmp/.map': Nessun file o directory
Unable to load unicharset file /usr/local/share/tessdata/eng.unicharset
cat: /home/klaus/tmp/pippo0002.txt: Nessun file o directory
rm: impossibile rimuovere `/home/klaus/tmp/pippo0002.txt': Nessun file o directory
rm: impossibile rimuovere `/home/klaus/tmp/pippo0002.raw': Nessun file o directory
rm: impossibile rimuovere `/home/klaus/tmp/pippo0002.map': Nessun file o directory
Unable to load unicharset file /usr/local/share/tessdata/eng.unicharset
cat: /home/klaus/tmp/pippo0002.txt: Nessun file o directory
rm: impossibile rimuovere `/home/klaus/tmp/pippo0002.txt': Nessun file o directory
rm: impossibile rimuovere `/home/klaus/tmp/pippo0002.raw': Nessun file o directory
rm: impossibile rimuovere `/home/klaus/tmp/pippo0002.map': Nessun file o directory
grazie ancora
ciao
cokeghem
Scritto da: ockeghem | 01/11/2008
cavolo ma sembra un errore di tesseract... ho cercato ancora su Internet ed ho trovato una cosa interessante, prova a digitare le seguenti istruzioni in un terminale:
wget http://tesseract-ocr.googlecode.com/files/tesseract-2.00.eng.tar.gz
tar -zxvf tesseract-2.00.eng.tar.gz
cd tessdata
sudo cp * /usr/local/share/tessdata
sudo rm -r tessdata
sudo rm tesseract-2.00.eng.tar.gz
queste erano per il dizionario inglese... prova a vedere se adesso funziona e fammi sapere...
Ciao da Emanuele
Scritto da: Emanuele | 02/11/2008
Ciao Emanuele,
ho eseguito i comandi da te indicatimi, il risultato ora è il seguente:
Tesseract Open Source OCR Engine
name_to_image_type:Error:Unrecognized image type:pippo.tiff
IMAGE::read_header:Error:Can't read this image type:pippo.tiff
tesseract:Error:Read of file failed:pippo.tiff
Signal_exit 31 ABORT. LocCode: 3 AbortCode: 3
pippo.tiff è ovviamente il file frutto della scansione,.
grazie mille per il tuo aiuto
saluti
ockeghem
Scritto da: ockeghem | 02/11/2008
direi che adesso l'errore non è più causato dai pacchetti della lingua di Tesseract ma dal file tiff. Puoi provare ad utilizzare un'altra immagine, per esempio un'immagine jpeg, per vedere se ti dà un errore?
I file tiff hanno molti problemi legati ai vari formati di compressione. Prova con un altro formato.
Fammi sapere...
Ciao da Emanuele
Scritto da: Emanuele | 02/11/2008
Jaunty a 64. Pacchetto "xsane2tess_1.0-1guadausers1_i386.deb" architettura i386 errata. ??? Ciao bella guida, semplie e efficace ;))
Scritto da: ale | 23/06/2009
Spero di aver capito il tuo problema. Hai provato ad installare il pacchetto xsane2tess_1.0-1guadausers1_i386.deb e ti dice che non è per l'architettura a 64 bit? Normalmente quel pacchetto si può usare senza problemi sia su Ubuntu a 32 che a 64 bit.
Prova ad installarlo da terminale:
sudo dpkg -i sane2tess_1.0-1guadausers1_i386.deb
In caso forza l'installazione, non ci dovrebbero essere dei problemi:
sudo dpkg -i --force-all sane2tess_1.0-1guadausers1_i386.deb
Fammi sapere...
Ciao da Emanuele
Scritto da: Emanuele | 23/06/2009
Salve.
Anche io ho lo stesso problema con xsane2tess e tesseract. In pratica ho un 64bit ed ottengo il seguente errore:
mano@mano-laptop:~/Desktop$ sudo dpkg -i --force-architecture xsane2tess_1.0-1guadausers1_i386.deb
dpkg: warning: overriding problem because --force enabled:
package architecture (i386) does not match system (amd64)
(Reading database ... 229257 files and directories currently installed.)
Preparing to replace xsane2tess 1.0 (using xsane2tess_1.0-1guadausers1_i386.deb) ...
Unpacking replacement xsane2tess ...
dpkg: dependency problems prevent configuration of xsane2tess:
xsane2tess depends on tesseract; however:
Package tesseract is not installed.
dpkg: error processing xsane2tess (--install):
dependency problems - leaving unconfigured
Errors were encountered while processing:
xsane2tess
Da tener presente che ho precedentemente installato sia tesseract-ocr che tesseract-ocr-ita
Ho letto il resto dei commenti ma li trovo un poco confusi e forse saranno anche obsoleti, tenendo presente che è passato un annetto dall'ultimo commento.
Mi aiutate per favore? Grazie.
PS: ho provato la scansione con xsane e gocr ma il testo è illegibile e nemmeno lontanamente attinente al testo originale.
Scritto da: Manolo | 10/07/2010
Scrivi un commento