Outils pour utilisateurs

Outils du site


vision_transfo_rigide_2d

Ceci est une ancienne révision du document !


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

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:

image:

mask:

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:

  • l'image de couleur:
  • un masque indiquant le fond et la forme:

différentes images à traiter:

bvdp.inetdoc.net_files_iut_tp_lpro_vision_imabouchon1_rect.jpg

bvdp.inetdoc.net_files_iut_tp_lpro_vision_imabouchon2_rect.jpg

bvdp.inetdoc.net_files_iut_tp_lpro_vision_imabouchon3_rect.jpg

bvdp.inetdoc.net_files_iut_tp_lpro_vision_imabouchon4_rect.jpg

bvdp.inetdoc.net_files_iut_tp_lpro_vision_imabouchon5_rect.jpg

bvdp.inetdoc.net_files_iut_tp_lpro_vision_imabouchon6_rect.jpg

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

bvdp.inetdoc.net_files_iut_tp_lpro_vision_imabouchon1_rect_trouve.jpg

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:

bvdp.inetdoc.net_files_iut_tp_lpro_vision_imamire1.jpg

image avec les contours en surimpression:

bvdp.inetdoc.net_files_iut_tp_lpro_vision_imamire1_contour.jpg

exemple d'image de la mire en sortie du programme:

bvdp.inetdoc.net_files_iut_tp_lpro_vision_imamire1_rect.jpg

En appliquant le même traitement à des images de bouchons sur la zone de la mire:

bvdp.inetdoc.net_files_iut_tp_lpro_vision_imabouchon1.jpg

est rectifiée en:

bvdp.inetdoc.net_files_iut_tp_lpro_vision_imabouchon1_rect.jpg

vision_transfo_rigide_2d.1617145296.txt.gz · Dernière modification : 2021/03/31 01:01 de bvandepo