webentwicklung-frage-antwort-db.com.de

Mehrere Konfigurationsoptionen für Tesseract OCR

Ich habe Probleme mit Pytesseract. Ich muss Tesseract so konfigurieren, dass es so konfiguriert ist, dass es einzelne Ziffern akzeptiert, während es auch nur Zahlen annehmen kann, da die Zahl Null oft mit einem 'O' verwechselt wird.

So was:

target = pytesseract.image_to_string(im,config='-psm 7',config='outputbase digits')

Danke vielmals,

Niall

10
Niall Oswald

tesseract-4.0.0a unterstützt unten psm. Wenn Sie die Erkennung einzelner Zeichen wünschen, setzen Sie psm = 10. Wenn Ihr Text nur aus Zahlen besteht, können Sie tessedit_char_whitelist=0123456789 setzen.

Page segmentation modes:
  0    Orientation and script detection (OSD) only.
  1    Automatic page segmentation with OSD.
  2    Automatic page segmentation, but no OSD, or OCR.
  3    Fully automatic page segmentation, but no OSD. (Default)
  4    Assume a single column of text of variable sizes.
  5    Assume a single uniform block of vertically aligned text.
  6    Assume a single uniform block of text.
  7    Treat the image as a single text line.
  8    Treat the image as a single Word.
  9    Treat the image as a single Word in a circle.
 10    Treat the image as a single character.
 11    Sparse text. Find as much text as possible in no particular order.
 12    Sparse text with OSD.
 13    Raw line. Treat the image as a single text line,
                        bypassing hacks that are Tesseract-specific.

Hier ist ein Beispiel für die Verwendung von image_to_string mit mehreren Parametern.

target = pytesseract.image_to_string(image, lang='eng', boxes=False, \
        config='--psm 10 --oem 3 -c tessedit_char_whitelist=0123456789')

Hoffe das hilft.

28
thewaywewere

Der Grund, warum Sie Probleme haben, ist, dass die Zeicheneinschränkung in Version 4.0 nicht funktioniert. Sie müssen den Legacy-Modus (oem 0) erzwingen, um die Anzahl der gefundenen Zeichen begrenzen zu können. Irgendwo im Tesseract-Team gibt es einen Fehler, den sie noch nicht angesprochen haben. 

0
RALPH BURLESON