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
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.
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.