L'obtention de la boîte englobante de mots reconnus à l'aide de python-tesseract
Je suis à l'aide de python-tesseract pour extraire des mots à partir d'une image. C'est un wrapper python pour tesseract qui est un ROC code.
J'utilise le code suivant pour obtenir les mots:
import tesseract
api = tesseract.TessBaseAPI()
api.Init(".","eng",tesseract.OEM_DEFAULT)
api.SetVariable("tessedit_char_whitelist", "0123456789abcdefghijklmnopqrstuvwxyz")
api.SetPageSegMode(tesseract.PSM_AUTO)
mImgFile = "test.jpg"
mBuffer=open(mImgFile,"rb").read()
result = tesseract.ProcessPagesBuffer(mBuffer,len(mBuffer),api)
print "result(ProcessPagesBuffer)=",result
Cela renvoie seulement les mots et de ne pas leur emplacement/taille/orientation (ou en d'autres termes un cadre de sélection contenant de mer) dans l'image. Je me demandais si il n'y a aucun moyen d'obtenir que ainsi
peut aider github.com/tesseract-ocr/tesseract/wiki/...
OriginalL'auteur Abtin Rasoulian | 2013-12-30
Vous devez vous connecter pour publier un commentaire.
tesseract.GetBoxText()
méthode retourne la position exacte de chaque caractère dans un tableau.En outre, il est une option de ligne de commande
tesseract test.jpg result hocr
qui va générer unresult.html
fichier avec chaque mot reconnu coordonnées. Mais je ne suis pas sûr qu'il peut être appelé par le script python.OriginalL'auteur lennon310
L'aide du code ci-dessous, vous pouvez obtenir la boîte englobante correspondant à chaque personnage.
OriginalL'auteur khushhall
Utilisation
pytesseract.image_to_data()
Parmi les données renvoyées par
pytesseract.image_to_data()
:left
est la distance à partir du coin supérieur gauche du cadrela boîte, à la bordure gauche de l'image.
top
est la distance entre le coin supérieur gauche de la boîte englobante,à la bordure supérieure de l'image.
width
etheight
sont la largeur et la hauteur de la boîte englobante.conf
est le modèle de confiance pour la prédiction de la parole à l'intérieur de cette boîte englobante. Siconf
est -1, ce qui signifie que le correspondant de la boîte englobante contient un bloc de texte, plutôt que juste un seul mot.Les boîtes englobantes retourné par
pytesseract.image_to_boxes()
joindre des lettres donc je croispytesseract.image_to_data()
est ce que vous cherchez.C'est la réponse correcte.
OriginalL'auteur stwykd
Python tesseract peut le faire sans l'écriture dans le fichier, à l'aide de la
image_to_boxes
fonction:y-coordinate
est soustraite de la hauteur de l'imageOriginalL'auteur jtbr
Aurait des commentaires sous lennon310 mais ne pas avoir assez de réputation pour le commentaire...
Pour exécuter sa commande en ligne de commande
tesseract test.jpg result hocr
dans un script python:OriginalL'auteur Endyd