OCR: Comment comparer des images, trier et non-concordance sur le faire rapidement?

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

  •  05-09-2019
  •  | 
  •  

Question

Je réussi à avoir chaque caractère stocké dans un bitmap et je cherche un moyen de déterminer rapidement quel caractère il est.

Par conséquent, je suis sur le point de stocker tous les caractères possibles dans un tableau de 1 et 0, et de les comparer à un tableau du bitmap que je viens de saisir.

Je pourrais faire des contrôles simples comme comparer combien de pixels noirs je suis arrivé, comparer les dimensions et ainsi de suite, mais tous ces contrôles sont lents (juste une supposition ..).

Alors que je suis à la recherche est une méthode qui va creux chaque pixel de bas en haut, ou au hasard, qui compare le tableau à un ensemble de tableaux et sortes dépareillés dehors, jusqu'à ce qu'un seul tableau reste. Mais comment puis-je mettre en œuvre cela?

Merci pour votre aide.

Sven

Était-ce utile?

La solution

Dans OCR-monde, il est assez rare que vous courez dans un « match parfait » entre un targetresource et votre ressource comparant d'origine.

En fait, il est un énorme domaine de la science, mais est ici une thèse belle sur le sujet qui devrait vous donner quelques connaissances de base: http://www.discover.uottawa.ca/~qchen/my_papers/ master_thesis.pdf

Notez que les algorithmes comme ceux-ci sont très lourds mathématiques et maintenant de manière optimisée pour une norme CPU x86.

Si vous êtes à la recherche d'un match parfait (je veux dire, vraiment parfait, jusqu'à octet par octet) et que vous voulez mettre en œuvre cette rapide et facile, je vous suggère de faire un « sauter les discordances évidentes rapide » - un peu algorithme - quelque chose comme:

1) Comparer la taille des tableaux, si différente, ce n'est pas ce que vous cherchez

2) Comparer une valeur de hachage de chaque bitmaps

3) Comparer chaque bit / octet un par un et dès que vous voyez une différence, ce n'est pas ce que vous cherchez

4) Win, vous avez trouvé un match:)

Ceci est très lent, en fonction de ce que vous essayez d'atteindre, mais facile à mettre en œuvre et cela fonctionnera. Ainsi va bien pour une application prototype semblables. Comme je l'ai dit, l'OCR (et toutes les autres formes de traitement numérique du signal) sont un énorme domaine de la recherche, il est donc pas quelque chose que vous pouvez attendre les gens à vous enseigner dans un ForumDéposer rapide, malheureusement: (

Bonne chance

[EDIT] En regardant le commentaire dans votre OQ, je vais dire d'aller pour un Hashtable / dictionnaire serait structure de données le plus rapide pour vous. Ce, ou un arbre de recherche binaire .. Les deux ONJ très dépendante de votre générateur touche dièse:)

[EDIT2 (xD)] « Il est généré par le texte aliasé un ordinateur. L'arrière-plan est différent, mais le texte a toujours la même couleur. » informations très important là: P sont la taille du texte / bitmaps toujours le même aussi bien? Je suggère que soit mettre en œuvre votre propre algorithme de hachage où vous défaussez les couleurs de fond prédéfinies, de sorte que la valeur de hachage ne dépend que de la couleur du texte (et la forme de ce trop ofc) ou réécrit simplement tous les pixels d'arrière-plan dans vos objectifs être la même couleur que votre original (ou tout simplement mettre l'arrière-plan d'origine à celle de vos cibles dépend encore une fois sur les données que vous combattez avec ici - besoin plus d'informations :)).

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top