Taches de vision affectées individuellement
Discutez avec l'enseignant qui vous affectera une des taches de vision parmi les suivantes:
Projet 1: Estimation de transformation rigide 2D
Cette tache consiste à estimer 3 paramètres (2 en translation + 1 en rotation) pour une transformation rigide 2D entre 2 repères.
Télécharger et compléter le programme python: https://bvdp.inetdoc.net/files/iut/tp_lpro_vision/rigid_transform_2D_a_completer.py
Vous devez compléter la fonction def computeRigidTransform(P2Dimage,P2Drobot): pour calculer la valeur des paramètres tx,ty et theta
Exemple de fichier contenant les correspondances, à mettre dans le même dossier que le programme python pour la fonction main:
- rigidtransform.in
83,110,-138.5,520,9,103,-213,514,12,0,-213,410
Les données données sont organisées sous la forme: xvision1,yvision1,xrobot1,yrobot1,xvision2,yvision2,xrobot2,yrobot2,xvision3,yvision3,xrobot3,yrobot3
Projet 2: Génération d'une image synthétique du bouchon
Cette tache consiste à synthétiser deux images du bouchon: une image de couleur et une image de masque.
Télécharger et compléter le programme python: https://bvdp.inetdoc.net/files/iut/tp_lpro_vision/synthese_bouchon_a_completer.py
Pour cela compléter la fonction create_pattern_and_mask(width, height,d1,d2, bgr_color_center=(0, 0, 0),bgr_color_contour=(0, 0, 0)): du programme
- width représente la largeur de l'image à générer
- height représente la hauteur de l'image à générer
- d1 correspond au diamètre du contour du bouchon à colorier en bgr_color_center dans l'image image
- d2 correspond au diamètre de la région centrale du bouchon à colorier en bgr_color_contour dans l'image image
L'image mask doit contenir un disque de diamètre d1 blanc, entouré de noir.
Les valeurs de couleurs sont indiquées dans un fichier à mettre dans le même dossier que le programme python:
- listecolors.out
160.0000, 119.0000, 109.0000 58.0000, 58.0000, 249.0000
exemple d'images à générer pour les paramètres par défaut du programme:
Projet 3: Détection de la position du bouchon dans l'image rectifiée
Cette tache consiste à rechercher la position dans l'image la plus similaire à l'image de bouchon composée de:
différentes images à traiter:
Télécharger et compléter le programme python: https://bvdp.inetdoc.net/files/iut/tp_lpro_vision/correlation_a_completer.py
Vous devez compléter la fonction def processImage(image): pour rechercher la meilleure correlation entre l'image de référence du bouchon et l'image fournie dans image en utilisant la fonction matchTemplate d'openCV. La fonction def processImage(image): doit retourner l'image avec le bouchon détecté en surimpression, une variable indiquant si le bouchon est détecté dans l'image, et les position x et y du centre du bouchon détécté dans l'image.
L'image suivante montre un résultat de détection du bouchon
Projet 4: Rectification de l'image grâce à une homographie
Cette tache consiste à générer une image rectifiée à partir de l'image fournie par la caméra. Cette image rectifiée doit avoir une résolution de 1 pixel par millimètre et occuper une surface de 169×169 millimètres. Les quatre coins de cette image doivent correspondre aux quatre coins de la mire posée sur le plan de travail du robot.
Télécharger et compléter le programme python: https://bvdp.inetdoc.net/files/iut/tp_lpro_vision/homographie_a_completer.py
Vous devez compléter la fonction processImage(image,srcPoints): pour calculer la transformation homographique à partir des coordonnées de points 2D mis en correspondance (avec les 4 coins de l'image à générer). La fonction doit également génerer l'image dst rectifiée
Exemple de fichier contenant les correspondances, à mettre dans le même dossier que le programme python pour la fonction main:
- listepoints.out
991.2868, 565.0504 655.7476, 490.5274 592.5595, 833.6786 948.9872, 903.2888
exemple d'image de la mire en entrée du programme:
image avec les contours en surimpression:
exemple d'image de la mire en sortie du programme:
En appliquant le même traitement à des images de bouchons sur la zone de la mire:
est rectifiée en: