Bonjour,
après avoir écumer faq et autres messages du forum sans succès je me décide à poster.
Je vous explique mon soucis:
Sous matlab, j'ai une surface représentée par une nappe de point en 3D(appelons refstat), je considère cette première surface comme référence et je définis 3points qui me serviront à créer un repère orthonormé.
Je souhaite recaler sur cette surface de référence toutes mes autres surfaces représentées(refdyn) elles aussi par des points en 3D, à l'aide des 3 points que j'ai considéré comme fixe(c'est à dire qui ne bouge pas par rapport à la surface).
D'un point de vue mathématique, la transformation entre ma surface de référence et une autre est due à une translation et rotation. Je voulais donc utiliser la relation suivante:
refstat=Q*refdyn où Q = R*T Je pouvais calculer Q grâce aux repères que j'ai calculé avec mes 3 points(en espérant que mon erreur ne vienne pas de ces repères..).
Ayant Q, je voulais multiplier cette matrice avec les coordonnées des points de ma surface dynref pour avoir les coordonnées des points recalés sur la surface statref.
Malheureusement je ne sais pas si c'est mon idée qui est mauvaise mais cela ne fonctionne pas... J'ai essayé de n'utiliser que des matrices 3*3 en séparant rotation et translation tel que refstat= R*refdyn+T mais sans succès, la translation fonctionne très bien mais la rotation est une catastrophe...
J'ai bien vu qu'il existait des algorithmes type ICP pour recaler les images successives mais j'ai du mal à les appliquer à mon sujet..(le code est un peu trop obscure..).
Avant de vous embêter avec mon code je souhaite déjà savoir si mon idée de départ est bonne? ou est ce que je suis partie sur des mauvaises bases mathématiques? ca fait 2 jours que je recherche la faille de mon programme...
Merci d'avance...
Partager