2010-07-03 2 views
5

J'ai une grande collection d'images numérisées, et elles sont toutes légèrement inclinées, avec une zone blanche autour d'elles. Ainsi, ces images ont des rectangles de couleurs entourés d'une grande zone blanche. Par conséquent, ces images ont des rectangles de couleurs. Le problème est que ces rectangles de couleur ne sont pas parallèles à la bordure de l'image. Je suis sûr qu'il doit y avoir un moyen de détecter par programmation ces rectangles de couleur, de sorte que je puisse faire pivoter l'image (donc la désaxer) puis la recadrer de sorte que seule la partie intéressante reste. Je suppose que je ne suis pas vraiment sûr de ce que ce processus est appelé, donc j'ai du mal à trouver une solution sur Google.Comment puis-je détecter (et corriger) les biais dans les images?

Est-ce que quelqu'un connaît une approche qui me permettrait de démarrer? Toutes les bibliothèques sur lesquelles je devrais me pencher? Ou le nom d'un algorithme qui aiderait?

Je prévois d'utiliser Java pour ce projet, mais je n'ai pas encore commencé, je suis donc ouvert aux suggestions de bibliothèques dans toutes les langues.

Répondre

3
  • détection de frontière
  • transformée de Hough (si tous les rectangles sur une image ont la même inclinaison)
  • détection de contour rectangulaire
  • (contour des composants connectés, puis superficie minimale rectangle de délimitation)
+0

Merci! Une recherche pour Hough Transform m'a conduit à http://www.recognition-software.com/image/deskew/ qui n'a pas résolu mon problème dès la sortie de la boîte, mais j'ai été en mesure de modifier un peu le code pour l'obtenir travailler très bien. – pkaeding

+1

Ceci est une page cassée. Pourriez-vous s'il vous plaît corriger le lien? –

+0

At-il été subsumé par Tess4j? – wprl

1

Vous pourriez essayez aussi scikit-image http://scikit-image.org/docs/dev/auto_examples/.

C'est une excellente bibliothèque pour la transformation de Hough, mais il y a aussi d'autres méthodes comme la transformation du Radon et les transformations géométriques pour ce genre de tâche.

Ceci est une bibliothèque python.

+0

wow, cela semble très utile! – pkaeding

1

Alyn est un package tiers pour détecter et corriger l'inclinaison dans les images contenant du texte. Il utilise Canny Edge Detection et Hough Transform pour trouver l'asymétrie.

Pour détecter l'inclinaison, il suffit d'exécuter

./skew_detect.py -i image.jpg 

Pour corriger l'inclinaison, exécutez

./deskew.py -i image.jpg -o skew_corrected_image.jpg 
Questions connexes