Limite de caractères tesseract est à la recherche d'
Est-il possible de limiter le jeu de caractères qui tesseract est à la recherche (par exemple, la recherche uniquement pour les lettres a-z)? Cela permettrait d'améliorer mes résultats considérablement.
Vous devez vous connecter pour publier un commentaire.
Créer un fichier de config (e.g "lettres") dans tessdata/configs annuaire généralement
/usr/share/tesseract/tessdata/configs
ou
/usr/share/tesseract-ocr/tessdata/configs
Et ajoutez cette ligne au fichier de configuration:
...ou peut-être [a-z] fonctionne.. je ne sais pas 🙂
Appelez ensuite tesseract similaire à ceci:
Qui limite tesseract pour reconnaître que le voulait caractères
-1
Ne fonctionne pas. Pas de tel fichier... si je crée de configuration personnalisé et de l'utiliser, il ne prend pas d'effet.En outre le fichier de config, est le
-c
drapeau:À utiliser la liste blanche dans un fichier de config ou à l'aide de la
-c tessedit_char_whitelist=...
commutateur de ligne de commande, dans la nouvelle version 4.0, vous aurez à régler le Moteur d'OCR mode de l ' "Original Tesseract seulement". C'est parce que la nouvelle "les réseaux de Neurones LSTM" mode de ne pas respecter la liste blanche de réglage.Exemple de bon de ligne de commande pour la version 4.0:
Mise à JOUR: Dans les versions plus récentes (4.0) il y a corrompu
eng.traineddata
fichier installé par défaut par Windows et certains Linux installateurs. Solution temporaire est de remplacertessdata\eng.traineddata
fichier avec un à partir de l'ancienne version. Ce fichier devrait être d'environ 30 MO. Sinon, vous obtiendrez le message d'Erreur: "Tesseract ne pouvait pas charger toutes les langues!" ou similaire.pyt.image_to_data(im_gray_res, config='-c tessedit_char_whitelist=0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ --psm 11 --oem 0')
commepytesseract.pytesseract.TesseractError: (1, "Failed loading language 'eng' Tesseract couldn't load any languages! Could not initialize tesseract.")
. Toutes les idées sur la façon de réaliser la détection avec uniquement de caractères?pytesseract.image_to_data(Image.open('test.png'))
sans arguments supplémentaires? Parce que l'erreur ne semble pas être lié à la nature de la liste blanche elle-même.tesseract 4.0.0-alpha.20180109
. La commande que j'ai utilisé:tesseract test.png stdout --oem 0 -c tessedit_char_whitelist=abc123
tesseract 4.0.0-beta.4-138-g2093
. Pourquoi avez-vous essayer sur la version alpha? Aussi, voyez-vous, la sortie uniquement les caractères dans la liste blanche? Avez-vous essayé avec--oem 1/2/3
?eng.traineddata
fichier. J'ai essayé la nouvelle version 4.0 et j'ai obtenu le même message d'erreur. Solution temporaire est de remplacertessdata\eng.traineddata
fichier avec un à partir de l'ancienne version. Ce fichier devrait être d'environ 30 MO (pas 4 MO, comme celui installé sur la version 4.0).tessdata\eng.traineddata
d'une ancienne version doit être rapide et simple?tessdata/eng.trainedddata
avec le téléchargé, et tout a fonctionné parfaitement sur la version 4.0.config
paramètre.tesseract
's man-la page des mentions "Nota Bene: Les options-l lang et-gas N doit intervenir avant tout configfile."Juste en ajoutant cette pour quiconque utilise tesseract sur Android. Dans votre readOCR fonction de l'endroit où vous définissez la langue etc. ajoutez la ligne suivante;
vous pouvez également faire la liste noire pour les caractères à exclure.
tesseract.setTessVariable()
Dans le Tesseract version 4.00, ce ne peut pas être fait. Vous ne pouvez affiner votre modèle ou utiliser des regex pour supprimer des caractères supplémentaires à partir de la prédiction.