Question

Je veux trouver un algorithme capable de trouver des lignes brisées ou des formes dans un bitmap. Prenons une situation dans laquelle j'ai un bitmap avec seulement deux couleurs, le dos et le blanc (images utilisées dans les cahiers à colorier). Certaines courbes et lignes doivent être connectées les unes aux autres, mais en raison d'erreurs de numérisation, les bits blancs sont remplacés des noirs. Comment devrais-je les détecter? (Après ce travail, je souhaite convertir des bitmaps en fichiers vectoriels. Je souhaite travailler avec l'algorithme potrace.)

Si vous avez une idée, merci de me le faire savoir.

Était-ce utile?

La solution

Voici un algorithme simple pour remédier aux petites lacunes:

Tout d’abord, utilisez un filtre qui crée un pixel noir lorsque l’un de ses huit voisins est noir. Cela augmentera votre aperçu général.

Ensuite, utilisez un filtre de réduction qui supprime le contour supplémentaire tout en laissant les espaces comblés.

Voir cet article pour connaître certains filtres et paramètres: Laboratoire de traitement d'images en C #

Autres conseils

La méthode la plus simple consiste à utiliser une technique morphologique appelée clôture . Cela ne fonctionnera que si les espaces dans les lignes sont assez petits par rapport au rapprochement des différentes lignes.

La manière dont vous choisissez l’élément structurant pour effectuer la clôture peut également améliorer ou réduire les performances.

L'article de Wikipedia étant très théorique (ou mathématique), vous voudrez peut-être vous tourner vers Google ou tout autre livre sur le traitement d'images pour obtenir une meilleure explication de la façon dont cela est fait.

Peut-être que Hough Transform peut vous aider. Bonus: vous obtenez les paramètres de lignes pour votre fichier vectoriel.

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