2 votes

Combiner des polygones alignés horizontalement dans une image

J'ai une image sur laquelle j'effectue une reconnaissance optique de caractères en utilisant l'API Google Vision. J'obtiens un résultat qui contient les sommets des polygones de chaque mot. Après avoir dessiné les polygones, l'image ressemble à ceci Ocr results Je veux maintenant combiner les boîtes qui sont alignées horizontalement. Par exemple : (ARTICLES DE VENTE), (S000828749 Short MB 12.00),...,(Sous-total 146.00)

Les choses que j'ai essayées : J'ai fait une ligne à partir du point médian des bords verticaux et je l'ai prolongée jusqu'au bord de l'image et j'ai compté combien de polygones la ligne touche et j'ai codé le polygone avec la même couleur que la ligne. J'ai obtenu une image comme celle-ci
enter image description here
Je ne sais pas comment procéder pour obtenir les groupes sur une seule ligne

0voto

Backalla Points 76

J'ai résolu ce problème par la méthode suivante.
1. Chaque boîte aura une liste de tags qui sont initialisés à [].
2. Triez les boîtes sur la coordonnée x.
3. Initialiser Tad à 0. Les étiquettes ne sont que des identifiants individuels et notre objectif est d'assigner les boîtes de la même ligne avec les mêmes étiquettes.
3. Faites un itération sur chaque boîte.
4. Si la liste des balises est vide, incrémentez la valeur de la balise et ajoutez-la à la liste des balises de cette boîte.
5. Itérer sur toutes les boîtes pour la boîte extérieure et attribuer la même étiquette à chaque boîte qui est touchée par la ligne d'axe de la boîte extérieure.
6. Si la liste de balises n'est pas vide, prendre la balise la plus fréquente dans la liste de balises.
C'est un algorithme N^2 où N est le nombre de boîtes.

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X