Bonjour !
Je suis électronicien mais dans le cadre de mon travail, on m'a assigné un projet informatique pour lequel je manque cruellement d'expérience et de savoir faire.
Je viens donc, si possible, solliciter votre aide !
En soit, la tâche va peut être sembler facile pour certains (?) :
je dois être capable de redresser des surfaces courbées pour les rendre planes en respectant les dimensions.
Voici un exemple de surface que je suis censé pouvoir redresser : http://static-p3.fotolia.com/jpg/00/...Ld4yZiEmiD.jpg
Pour faire ce traitement d'image je me suis tourné vers la librairie OpenCV car on trouve beaucoup de documentations dessus.
Dans un premier temps j'ai voulu faire passer la courbure de la forme comme étant une distorsion de la caméra afin de pouvoir utiliser les fonctions cvCalibrateCamera2 et cvUndistort (Toutes les images étant prises par l'intermédiaire d'une caméra).
L'idée était donc de projeter un damier sur la surface, d'en faire la capture, et en fonction de la courbure du damier redresser la surface.
Néanmoins cette méthode ne donne pas grand chose.
La deuxième idée, et je pense que celle la à plus de chances d'aboutir, est de projeter de simples droites horizontales sur la surface.
Si la surface est parfaitement plane, les lignes projetées paraîtront donc horizontales et droites et aucun redressement ne sera nécessaire.
Par contre si la surface est courbée, les lignes projetées seront déformées (en suivant la courbure de la surface) et en fonction de la déformation de ces lignes -> redresser l'image pour les rendre horizontales.
voici un exemple d'image ou on peut voir l'effet de la courbure d'une surface sur des lignes droites : http://www.adobe.com/fr/designcenter...agewarp_10.jpg
Néanmoins je n'ai aucune idée de comment implémenter cela sous OpenCV.
Si quelqu'un à une meilleure idée, un exemple de code source, une référence, ou n'importe quoi d'autre qui puisse m'aiguiller, je suis preneur !
Je vous remercie.
Partager