Quelqu'un a-t-il essayé d'obtenir des numéros en appelant uniquement la dernière version de tesseract 4.0 en python?
Le ci-dessous a fonctionné dans 3.05 mais renvoie toujours des caractères dans 4.0, j'ai essayé de supprimer tous les fichiers de configuration, mais le fichier de chiffres et ne fonctionnait toujours pas; Toute aide est la bienvenue:
im est une image d'une date, fond noir texte blanc:
import pytesseract
im = imageOfDate
im = pytesseract.image_to_string(im, config='outputbase digits')
print(im)
Vous pouvez spécifier les nombres dans le tessedit_char_whitelist
comme ci-dessous comme config option
.
ocr_result = pytesseract.image_to_string(image, lang='eng', boxes=False, \
config='--psm 10 --oem 3 -c tessedit_char_whitelist=0123456789')
J'espère que cette aide.
L'utilisation de drapeaux tessedit_char_whitelist avec pytesseract n'a pas fonctionné pour moi. Cependant, une solution consiste à utiliser un indicateur qui fonctionne, qui est config = 'digits':
import pytesseract
text = pytesseract.image_to_string(pixels, config='digits')
où pixels est un tableau numpy de votre image (l'image PIL devrait également fonctionner). Cela devrait forcer votre pytesseract à ne renvoyer que des chiffres. Maintenant, pour personnaliser ce qu'il retourne, trouvez votre fichier de configuration de chiffres, sur Windows le mien était situé ici:
C:\Program Files (x86)\Tesseract-OCR\tessdata\configs
Ouvrez le fichier de chiffres et ajoutez les caractères que vous souhaitez. Après avoir enregistré et exécuté pytesseract, il ne devrait renvoyer que les caractères personnalisés.
Comme vous pouvez le voir dans ce problème GitHub , la liste noire et la liste blanche ne fonctionnent pas avec la version 4.0 de tesseract.
Il existe 3 solutions possibles à ce problème, comme je l'ai décrit dans cet article de blog :
Créez une fonction python qui utilise une expression régulière simple pour extraire tous les nombres:
def replace_chars(text):
list_of_numbers = re.findall(r'\d+', text)
result_number = ''.join(list_of_numbers)
return result_number
result_number = pytesseract.image_to_string(im)