Bonjour à tous,
je cherche à trouver une méthode pour calculer la transformée permettant de minimiser les distances entre 2 nuages de points reliés dans le temps.
Je pense travailler avec le langage R, mais ce n'est pas encore défini.
Je m'explique :
en input : j'ai 2 nuages de point (que je vais nommé {M1;M2;M3;...;Mi} et {N1;N2;N3;...;Nj) et leur liens (correspondant au couple (Mx,Ny) où x appartient à [1;i] et y à [1;j]).
Il ne peut pas y avoir de couple (Mx,My) ou (Nx,Ny)
Et il peut y avoir plusieurs couples avec un même point.
Chaque point apparait au moins une fois dans la liste des couples.
Mon but est de trouver la transformée globale permettant de transformer le nuage M en N en minimisant le plus possible la distance (le tout sans déformation).
Je pensais donc procéder comme suit :
- pour chaque x constant : pour tout y de [1,j] calculer le barycentre B(x) de tous les couples (Mx; Ny)
- pour tout x, calculer la distance entre Mx et B(x) c'est à dire le barycentre des points qui sont lié au point Mx dans le nuage N
- trouver la transformée (rotation, translation) minimisant ces distances d(Mx,B(x)) pour tout x.
C'est là où je bloque : je ne sais pas comment calculer cette fameuse transformation....
Connaitriez vous des algos/formules connus pour faire ça ?
Plusieurs autres intérogations (moins importante) que lesquels j'aimerais vous demander votre avis :
- ne vaut-il pas mieux utiliser le point de Fermat ?
- j'ai lu quelques infos sur l' "Iterative Closest Point", mais à ce que j'ai compris, ça ne fonctionne pas dans le cas où l'on a relié les 2 nuages de points...
N'hésitez pas à me poser des questions si ce n'est pas clair.
Partager