Diese Website existiert nur weil wir Werbung mit AdSense ausliefern.
Bitte den AdBlocker daher auf dieser Website ausschalten! Danke.

OCR mit Xsane [Update 1]

Alles rund um Hardware, die unter Linux läuft oder zum Laufen gebracht werden soll

Moderator: Moderatoren

Antworten
Spielwurm
Advanced Hacker
Advanced Hacker
Beiträge: 1312
Registriert: 30. Dez 2007, 11:55
Kontaktdaten:

OCR mit Xsane [Update 1]

Beitrag von Spielwurm » 13. Mär 2010, 11:00

Ist irgendjemand interessiert an einer funktionierenden Lösung, die auch "normale" User bedienen können? Falls ja, dann Echo > hier und ich schreibe.

Hartmut
Zuletzt geändert von Spielwurm am 26. Aug 2012, 13:20, insgesamt 1-mal geändert.
Tuxedo Book 15-Zoll mit GM-940 und Opensuse 42.2, AMD Phenom und Nvidia GT210 für Video mit Opensuse 13.1, Zbox HD-ND01 als Server, Pentium III/600 für Audio mit Opensuse 13.1

Werbung:
Benutzeravatar
whois
Administrator
Administrator
Beiträge: 16608
Registriert: 11. Okt 2004, 08:50
Wohnort: Aachen
Kontaktdaten:

Re: OCR mit Xsane

Beitrag von whois » 13. Mär 2010, 11:02

Warum brauchst du eine Aufforderung?
Dies ist ein Forum und ständig an Lösungen interessiert, damit alle was davon haben. ;)

Spielwurm
Advanced Hacker
Advanced Hacker
Beiträge: 1312
Registriert: 30. Dez 2007, 11:55
Kontaktdaten:

Re: OCR mit Xsane

Beitrag von Spielwurm » 13. Mär 2010, 13:02

Na, denn - ich kann Leute nicht leiden, die mich so billig breitschlagen!


Anleitung für OCR mit Xsane

Die folgende Lösung ist das Ergebnis harter Arbeit, die auf zweien meiner Rechner einwandfrei funktioniert. Meine Rechner haben als OS Opensuse 11.1 und KDE 4.3.x

Die OCR-Erkennung kann nur spaltenweise lesen, hängt aber auf Wunsch das Leseergebnis mehrerer Spalten aneinander an. Die Zeichenerkennung funktioniert mit der deutschen Sprache ganz ordentlich, besser als alles andere, was ich bisher probiert habe. Als Lesevorlagen dienten mir Schreibmaschinenseiten und die örtliche Tageszeitung.

Voraussetzung: Xsane und Imagemagic sind installiert und Xsane funktioniert mit dem Scanner. Wenn jemand einen HP-Scanner mit der HPLIP betreibt und Xsane sich weigert: sieh mal bitte in der /etc/sane.d/dll.conf nach, ob das Rautenzeichen vor dem letzten Eintrag "hpaio" weg ist. Wenn nicht, dann entferne es.

Installiert werden muss zusätzlich "tesseract" und "tesseract-data-deu". Das findest Du bei software.opensuse.org. Weil es dort mehrere Versionen gibt, hier der Hinweis, dass ich die Version von dieser Quelle benutze:

download.opensuse.org/repositories/open ... nSUSE_11.1

Ferner gehört das Script "xsane2tess.sh" (unten) ausführbar nach /usr/bin. Falls jemand eine andere Sprache nutzen möchte: in diesem Script ist mit der Option "-l deu" die deutsche Sprache fest eingestellt, das kannst Du ändern.

Du brauchst in Deinem Homeverzeichnis einen Ordner namens "/tmp".

Dann wird Xsane gestartet und eingestellt: In /Einstellungen/Texterkennung muss in die oberste Zeile "/usr/bin/xsane2tess.sh" (ohne Anführungszeichen!), die beiden Optionen "-i" und "-o" bleiben, der Rest muss weg.

Jetzt kannst Du eine Vorschau von einer Zeitungsseite scannen. Dann stellst Du die Scanfläche auf eine Spalte ein, die Scanart auf Strichzeichnung, die Auflösung auf 300dpi und scanst das zum "Betrachter". Dort gehst Du auf /Datei/OCR, wählst einen Dateinamen und OK. Fertig. Wenn alles gut gelaufen ist, steht in der Datei der passende Text. Falls das der Fall ist, killst Du den Betrachter (Bild nicht speichern) und stellst die Scanfläche auf die nächste Spalte ein. Scan sie in dieselbe ! Datei. Allerdings findest Du sie im Dateiauswahlfenster nur, wenn Du als Filter nicht "Bild", sondern "Alle Dateien" einstellst. Falls alles stimmte, dann kannst Du in der Datei den Text beider Spalten untereinander lesen. Kwrite kann Dir mit Strg-A und Strg-J einen Fließtext daraus machen.

Und so weiter ...

Gruß

Hartmut


Shellscript xsane2tess.sh

Code: Alles auswählen

#!/bin/bash
#
# ###############################################################################
#
#                                   xsane2tess 1.0b
#
#                          *** tesseract made simple ***
#
# ###############################################################################
# 
# xsane2tess is a TesseractOCR wrapper to be able to use tesseract with xsane
# This is a modified version by Hartmut Krummrei 03/2010 with Language in line 77
# 
#
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)
      
  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/
  
  V1.0b provided by p2pforum.it  - http://linux.p2pforum.it

  Some coding was stolen from 'ocube'
  http://www.geocities.com/thierryguy/ocube.html
  
"
  exit
fi


# get options...
while getopts ":i:o:" OPTION
  do
  case $OPTION in 
    i)  # input filename (with path)
      FILE_PATH="$OPTARG"
    ;;
    o )  # output filename
      FILE_OUT="$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##*/}
IN_FILE=`basename "$FILE_PATH"`
# Changed by Hartmut
OUT_FILE=`basename "$FILE_PATH"`

# Next line changed by Hartmut
# If the filename of IN_FILE is complicated, convert produces waste,
# so lets take the OUT_FILE-name
TIF_FILE="$TEMP_DIR""${OUT_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 deu 1>&2

# STDOUT scanned text => FILE_OUT
cat "$TXT_FILE".txt

# delete graphic file after use
rm "$TIF_FILE"

# delete tesseract workfiles
rm "$TXT_FILE".txt

rm "$TXT_FILE".raw

rm "$TXT_FILE".map

#show result
kwrite "$FILE_OUT" &

Zuletzt geändert von Spielwurm am 19. Mär 2011, 20:23, insgesamt 2-mal geändert.
Tuxedo Book 15-Zoll mit GM-940 und Opensuse 42.2, AMD Phenom und Nvidia GT210 für Video mit Opensuse 13.1, Zbox HD-ND01 als Server, Pentium III/600 für Audio mit Opensuse 13.1

Benutzeravatar
whois
Administrator
Administrator
Beiträge: 16608
Registriert: 11. Okt 2004, 08:50
Wohnort: Aachen
Kontaktdaten:

Re: OCR mit Xsane

Beitrag von whois » 13. Mär 2010, 13:18

Spielwurm hat geschrieben:Na, denn - ich kann Leute nicht leiden, die mich so billig breitschlagen!
Muss ich das verstehen? :???:
Auf jeden Fall Danke für den Weg ich werde das mal bei Gelegenheit ausprobieren.

diethn16
Newbie
Newbie
Beiträge: 36
Registriert: 28. Mär 2010, 19:45

Re: OCR mit Xsane

Beitrag von diethn16 » 28. Mär 2010, 20:00

Hallo Spielewurm,
ich bin einer, von denen, die froh sind, dass Du Dich hast "so billig breitschlagen!" lassen. Deine Lösung ist Spitze. Ich meine sie ist einen Eintrag ins WIKI wert!!
Oder meinst Du nicht?
Dieter

Benutzeravatar
whois
Administrator
Administrator
Beiträge: 16608
Registriert: 11. Okt 2004, 08:50
Wohnort: Aachen
Kontaktdaten:

Re: OCR mit Xsane

Beitrag von whois » 29. Mär 2010, 06:51

diethn16 hat geschrieben:ich bin einer, von denen, die froh sind, dass Du Dich hast "so billig breitschlagen!" lassen. Deine Lösung ist Spitze. Ich meine sie ist einen Eintrag ins WIKI wert!!
Oder meinst Du nicht?
Dem kann ich mich nur anschliessen, Funktioniert Prima. ;) :thumbs:

Spielwurm
Advanced Hacker
Advanced Hacker
Beiträge: 1312
Registriert: 30. Dez 2007, 11:55
Kontaktdaten:

Re: OCR mit Xsane

Beitrag von Spielwurm » 29. Mär 2010, 22:18

Danke für das Feedback. Ich tue mich echt schwer mit Wiki-Seiten-schreiben, aber ich habe es soweit geschafft. Seht mal nach, ob es so OK ist, falls nicht, dann ändert das.

Hartmut
Tuxedo Book 15-Zoll mit GM-940 und Opensuse 42.2, AMD Phenom und Nvidia GT210 für Video mit Opensuse 13.1, Zbox HD-ND01 als Server, Pentium III/600 für Audio mit Opensuse 13.1


Spielwurm
Advanced Hacker
Advanced Hacker
Beiträge: 1312
Registriert: 30. Dez 2007, 11:55
Kontaktdaten:

Re: OCR mit Xsane

Beitrag von Spielwurm » 23. Jul 2010, 22:39

Hat diese Lösung schon jemand unter 11.3 ausprobiert? Ich habe eine PN bekommen, dass es nicht geht ??

Hartmut
Tuxedo Book 15-Zoll mit GM-940 und Opensuse 42.2, AMD Phenom und Nvidia GT210 für Video mit Opensuse 13.1, Zbox HD-ND01 als Server, Pentium III/600 für Audio mit Opensuse 13.1

Benutzeravatar
Rainer Juhser
Moderator
Moderator
Beiträge: 3893
Registriert: 14. Aug 2006, 17:03
Wohnort: 04711 Münchhausen

Re: OCR mit Xsane

Beitrag von Rainer Juhser » 24. Jul 2010, 10:48

Ich will mal noch nichts fest zusagen, aber ich versuche es Anfang nächster Woche mal auszuprobieren, da mich das auch interessiert.
Salü vom Rainer Juhser
_________________________
Bist du neu - guckst du hier:
Neu im Linux-Club?...Bitte LESEN! == Bedienungsanleitung Forum == Hilfe zu Antworten aus dem Forum
== WISSEN PUR: Linupedia - das Linux-Club WIKI!

Benutzeravatar
Rainer Juhser
Moderator
Moderator
Beiträge: 3893
Registriert: 14. Aug 2006, 17:03
Wohnort: 04711 Münchhausen

Re: OCR mit Xsane

Beitrag von Rainer Juhser » 27. Jul 2010, 00:11

Das wird wohl doch etwas länger dauern - das Skript funktioniert bei mir (os 11.2 / Epson Scanner) nicht!

Wenn ich die Schritte (scannen, konvertieren, ocr) manuell durchführe, dann geht es. Mit dem Skript nicht! Aufgrund der Fehlermeldungen in der Log-Datei vermute ich als Übeltäter den seltsamen Dateinamen, den mein Epson-Scanner beim Scan in den Betrachter generiert. Ich versuche erstmal selbst da durchzublicken (von wegen Lerneffekt und so... :D ). Wenn ich alleine nicht weiterkomme, mache ich einen entsprechenden Fred auf. :roll:
Salü vom Rainer Juhser
_________________________
Bist du neu - guckst du hier:
Neu im Linux-Club?...Bitte LESEN! == Bedienungsanleitung Forum == Hilfe zu Antworten aus dem Forum
== WISSEN PUR: Linupedia - das Linux-Club WIKI!

Hans-Ulrich.Wegener
Newbie
Newbie
Beiträge: 1
Registriert: 31. Jul 2010, 13:21

Re: OCR mit Xsane

Beitrag von Hans-Ulrich.Wegener » 1. Aug 2010, 12:37

Hallo,
ich habe ein Problem mit meinem Scanner (HP PSC 1210 all-in-one unter OpenSuse 11.3) zu dem ich hier im Forum keine Lösung gefunden habe (zumindest ich hab sie nicht gefunden).
Beschreibung :
Beim ersten Versuch mit Xsane hatte ich einen Button "Scanvorschau" oder "Vorschauscan". Anklicken und der Text wurde eingescannt. Allerdings konnte ich den Text nicht weiterverarbeiten. Bischen rumgesucht bzgl. "OCR" und auf "gocr" gestossen und nachinstalliert.
Allerdings fehlt bei Xsane nun der o.a. Button "Scanvorschau" oder "Vorschauscan". Wenn ich jetzt auf "Scannen" klicke, ruckt mein HP kurz an und Xsane wird ohne Fehlermeldung beendet.
Was mache ich falsch bzw. kann mir jemand helfen ?
Danke.
Gruß
Uli

Spielwurm
Advanced Hacker
Advanced Hacker
Beiträge: 1312
Registriert: 30. Dez 2007, 11:55
Kontaktdaten:

Re: OCR mit Xsane

Beitrag von Spielwurm » 19. Mär 2011, 20:18

Ich habe das Ganze jetzt mal mit Opensuse 11.3 selbst probiert und es ging nicht!

Grund: Das Programm Sane übergibt ein PPM-Bild in das tmp-Verzeichnis mit dem komplizierten Namen:

xsane-conversion-hpaio:_net_Photosmart__C7200__series_ip=192.168.1.9.ppm-1000-X5EMWF

Wenn ich das an "convert" übergebe und als Ausgabedateinamen den selben Namen nehme, erzeugt "convert" Müll, eine über 10Mbyte große Datei, die eigentlich nur über 100Kbyte groß sein sollte. Sage ich "convert", dass es als Ausgabedateinamen einen leichten nehmen soll, kommt das richtige raus. Also habe ich das Script oben geändert und jetzt geht es.

Hartmut
Tuxedo Book 15-Zoll mit GM-940 und Opensuse 42.2, AMD Phenom und Nvidia GT210 für Video mit Opensuse 13.1, Zbox HD-ND01 als Server, Pentium III/600 für Audio mit Opensuse 13.1

Benutzeravatar
Rainer Juhser
Moderator
Moderator
Beiträge: 3893
Registriert: 14. Aug 2006, 17:03
Wohnort: 04711 Münchhausen

Re: OCR mit Xsane

Beitrag von Rainer Juhser » 19. Mär 2011, 22:09

Rainer Juhser hat geschrieben:Aufgrund der Fehlermeldungen in der Log-Datei vermute ich als Übeltäter den seltsamen Dateinamen, den mein Epson-Scanner beim Scan in den Betrachter generiert.
Das hatte ich damals auch festgestellt, konnte der Sache aber aufgrund von Zeitmangel nicht auf den Grund gehen. Danach hatte sich das für mich erledigt, da ich mir einen schönen Brother 4 in 1 zugelegt habe. :D
Salü vom Rainer Juhser
_________________________
Bist du neu - guckst du hier:
Neu im Linux-Club?...Bitte LESEN! == Bedienungsanleitung Forum == Hilfe zu Antworten aus dem Forum
== WISSEN PUR: Linupedia - das Linux-Club WIKI!

Spielwurm
Advanced Hacker
Advanced Hacker
Beiträge: 1312
Registriert: 30. Dez 2007, 11:55
Kontaktdaten:

Re: OCR mit Xsane

Beitrag von Spielwurm » 26. Aug 2012, 13:19

Update vom Ende August 2012

Ich habe heute ein Update in Sachen OCR auf meinem Rechner (inzwischen 12.1) machen wollen und folgende erfreuliche Tatsachen gefunden. Tesseract hat die Version 3 und es gibt einer grafische Oberfläche dazu. Gefunden habe ich die Pakete u.a. hier:
http://download.opensuse.org/repositori ... SUSE_12.1/
Lazy Kent ist up2date und hat auch Repositories für 12.2, Factory usw.

Diese Quelle in Yast einbinden und dann für Deutschland diese Pakete installieren:
  • tesseract
    tesseract-gui
    tersseract-traineddata-german
und die Abhängigen natürlich. Danach existiert im Menüpunkt "Grafik" ein passender Eintrag auf die GUI. Hier wählt man oben die Bilddatei(en), klickt darunter diejenige an, die man jetzt lesen möchte und piekt mit der Maus in das Bildfenster. Der Mauszeiger wird im Bildfenster zu einem kleinen Rechteck, nach dem Klick verschwindet das Rechteck und man kann ein Rechteck um den Bereich ziehen, der bearbeitet werden soll. Weiter unten findet sich ein Dropdown-Menü "language", mit dem man nur beim ersten Start die Sprache einstellt. Zuletzt auf den Button "Ausführen" klicken und wenige Sekunden später steht das Ergebnis in einer Datei mit dem 'basename' von oben und der Extension ".txt" dahinter.

Mein Testaufbau: Scan eines Zeitungsausschnitts mit 2 Meldungen zu je zwei Spalten mit Xsane als Farbscan mit 300dpi und der üblichen automatischen Optimierung und speichern als ".jpg". Auf dieses Bild habe ich Tesseract losgelassen und dabei alles ausgewählt und nicht ! optimiert.

Ergebnis: sehr gut !!! Mit Optimierung wird es nur wenig besser, weil vorher nur sehr wenig Fehler im Text standen. Das beste allerdings ist: der Text enthält alles untereinander, aber in der richtigen Reihenfolge spaltenweise gelesen. Heißt: zuerst die Überschrift der linken Meldung (über 2 Zeitungsspalten), dann die Unterüberschrift (ebenfalls 2 Spalten), danach die linke Spalte der Meldung, dann die rechte und erst dann die zweite Meldung in der gleichen Reihenfolge. Also so, wie ein Mensch das lesen würde. Unterschiedliche Fonts und Textgrößen störten nicht. Ein weiterer Test mit 2 Spalten und einem Bild mit Bildunterschrift ergab: das Bild ergab die Zeichen "s73", die Bildunterschrift stand mitten im Text.

Viel Spaß damit

Hartmut

Nachteil: Man erhält nur eine Textdatei, Layout wird nicht gespeichert.
Tuxedo Book 15-Zoll mit GM-940 und Opensuse 42.2, AMD Phenom und Nvidia GT210 für Video mit Opensuse 13.1, Zbox HD-ND01 als Server, Pentium III/600 für Audio mit Opensuse 13.1

Benutzeravatar
Rainer Juhser
Moderator
Moderator
Beiträge: 3893
Registriert: 14. Aug 2006, 17:03
Wohnort: 04711 Münchhausen

Re: OCR mit Xsane [Update 1]

Beitrag von Rainer Juhser » 26. Aug 2012, 14:13

Ich habe den Fred mal gepinnt. Ich denke er ist es wert. :)
Salü vom Rainer Juhser
_________________________
Bist du neu - guckst du hier:
Neu im Linux-Club?...Bitte LESEN! == Bedienungsanleitung Forum == Hilfe zu Antworten aus dem Forum
== WISSEN PUR: Linupedia - das Linux-Club WIKI!

Spielwurm
Advanced Hacker
Advanced Hacker
Beiträge: 1312
Registriert: 30. Dez 2007, 11:55
Kontaktdaten:

Re: OCR mit Xsane [Update 1]

Beitrag von Spielwurm » 26. Aug 2012, 18:22

Eine Ergänzung habe ich noch wegen OCR direkt von Xsane und die steht hier:
http://hartmut.homelinux.org/Linux/Software/OCR.html

Hartmut
Tuxedo Book 15-Zoll mit GM-940 und Opensuse 42.2, AMD Phenom und Nvidia GT210 für Video mit Opensuse 13.1, Zbox HD-ND01 als Server, Pentium III/600 für Audio mit Opensuse 13.1

Antworten