Trouver un carré dans une matrice de booléens

Fermé
neokyr Messages postés 1 Date d'inscription mercredi 9 avril 2014 Statut Membre Dernière intervention 26 juin 2014 - 26 juin 2014 à 13:56
Bonjours,

Je programme actuellement un logiciel dans lequel on doit récupérer une image scannée et trouver dans celle si un carré. (le carré en question me permettant de faire des traitement sur l'image à savoir -Corriger l'inclinaison -Rogner l'image et la redimensionner)

J'ai commencé par créer une matrice de booléens contenant la zone ou devrais se trouver le carré et false si un pixel blanc à été trouvé true sinon.

En traitement supplémentaire je supprime tout les "pixels noirs" qui ne sont pas entouré d'au moins 4 autres "pixels noirs" (comme l'image et scannée ça permet de lisser le résultat et de supprimer les micro erreurs dues au scanner).

En affichant la matrice sur la console je trouve assez facilement le carré.

Cependant 3 problèmes se posent à moi
1 le carré n'est pas parfait: Du fait du scannage + lissage il peut avoir des "trous" qui apparaissent sur les cotés
2 le carré n'est pas droit : Si dans le meilleur des cas (en utilisant l'image pré-impression notamment) les cotés du carré sont parfaitement parallèles au axes, ce n'est pratiquement jamais le cas quand je récupère un scan
3 j'ai besoin de récupérer les coins du carré: ce qui me permet de connaitre son inclinaison et sa position dans l'espace.

Le programme en lui même est en java mais comme mon problème est essentiellement algorithmique je me suis permis de poster dans la section plus générale "Programmation".

D'avance merci pour toute l'aide que vous pourrez m'apporter dans la résolution de mon casse-tête.