OCR: Comment améliorer la précision - les bibliothèques existantes pour la suppression non-texte « meubles », formes, etc. pour éviter la confusion OCR?

StackOverflow https://stackoverflow.com/questions/2448106

Question

Je veux supprimer des rectangles etc qui enferment le texte dans une image capture d'écran, afin que je puisse effectuer une reconnaissance optique de caractères pour obtenir un texte précis de la capture d'écran.

Contexte:

Je fais cela pour extraire des données à partir d'une application héritée pour une utilisation avec d'autres applications. Ceci est la seule façon d'obtenir à ces données sous forme de fichiers associés sont dans un format binaire fermé, propriétaire,.

Je vais utiliser AutoItScript pour conduire l'application pour afficher les données dans son interface utilisateur, alors je vais et ce screenshot nourrir cela Tesseract.

Je l'ai déjà eu un certain succès dans l'automatisation de l'interface utilisateur, et ont été en mesure d'utiliser Tesseract pour obtenir du texte brut ascii du bitmap.

Il y a plusieurs articles du forum AutoItScripr discuter de son utilisation avec Tesseract / OCR, mais pas spécifiquement pour ma question. http://www.autoitscript.com/forum/index.php? s = 6c32c3ece12756e635a619cdf175eff9 & showforum = 2

Qu'est-ce que je dois faire

Il y a minces, larges rectangles de 1 pixel qui enferment près du texte, lorsqu'il est alimenté à Tesseract, il les voit comme je par exemple pour une ligne verticle du rectangle.

Toute réflexion sur la façon de supprimer les rectangles ou les meilleures pratiques?

Je me demande s'il y a un ensemble d'outils à base de ligne de commande générique pour remplacer des rectangles, par exemple, dans les fichiers .png. Je pourrais alors passer le .png à travers cela, passer ensuite à Tesseract.

Détails sur la sortie / setup Tesseract Je l'ai utilisé sont les suivantes:

Rendez-vous ici: http://code.google.com/p/ Tesseract-ocr / téléchargements / liste - Pour le caractère générique anglais de base fixé pour obtenir Tesseract et en cours d'exécution et la reconnaissance de votre texte pixélisée en texte ascii, utilisez Tesseract-2.00.eng.tar.gz (version en vigueur au moment de l'écriture est la suivante: « les données en langue anglaise pour Tesseract (2.00 et jusqu'à) Départ 2007 989 KB 84845" )

Questions connexes Je l'ai déjà regardé sur Stack Overflow

Dans ces cas, ma question est pas tout à fait une réponse ou une solution commerciale est vendue. Je ne veux pas envisager une solution commerciale à ce stade.

Était-ce utile?

La solution

Il ne va probablement pas être un libre de la solution de stockage pour cela, mais coder votre propre ne devrait pas être trop difficile car il est probablement prudent de supposer qu'un rectangle ne sera jamais un caractère valide dans l'alphabet de votre police et peut donc être retiré en toute sécurité. Il aide également que tous vos bordures de rectangle sont exactement un pixel de large.

recherche donc pour une ligne horizontale contiguë qui est reliée à une autre ligne parallèle de la même longueur par exactement deux lignes verticales. Répétez la recherche jusqu'à ce que vous trouverez tous les rectangles dans l'image puis les rendre totalement transparent avec Graphics.DrawRectangle et

scroll top