Bonjour,
Je cherche à retrouver les coordonnées dans l'espace de 4 points (A, B, C, D), sachant que je connais leurs coordonnées 2D sur l'image, et un certain nombre de contraintes spatiales liant ces 4 points entre eux.
Je dispose des equations permettant de passer des coordonnées 3D aux coordonnées 2D, je me retrouve donc à ce stade avec un ensemble de 8 equations et 12 inconnues.
Les equations pour chaque point sont de la forme:
où ua et va sont les coordonnées 2D du point A, xa, ya, za sont les coordonnées 3D que je recherche, et xcam, ycam et zcam sont les coordonnées de la caméra, connues.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3 ua = { [ ( xa - xcam ) * (- zcam) ] / ( za - zcam) } + xcam. va = { [ ( ya - ycam ) * (- zcam) ] / ( za - zcam) } + ycam.
Les contraintes additionnelles qui (j'espère) doivent me permettre de déterminer les 12 inconnues (si le système est solvable) sont les suivantes:
1 - Les 4 points sont coplanaires.
2 - Les 4 points forment un rectangle dans ce plan.
Autant prévenir de suite, mes notions de géométrie dans l'espace sont anciennes et limitées, mais je compte en profiter pour progresser sur le sujet
Pour la contrainte 1, j'ai deux possibilités:
a - Faire le produit vectoriel de AB et AC puis le produit vectoriel de AC et AD. Si les deux vecteurs obtenus sont colinéaires, les 4 points sont coplanaires...
- J'ai commencé à travailler la dessus, mais j'ai l'impression que cela me rajoute des inconnues au niveau de l'équation du plan...
b - Calculer la distance du point D au plan formé par ABC. celle ci doit être nulle.
Pour la contrainte 2, mesurer les angles formés par les segments deux à deux. Les angles ABC, BCD, CDA et DAB doivent tous être 90°.
Quelques questions :
- D'après vous quelle est la meilleure piste ?
- Voyez vous une autre technique ?
- Sachant qu'ils sont coplanaires pourrais-je exprimer les coordonnées d'un point en fonction des 3 autres sans ajouter d'inconnue ?
Merci pour toute info ou suggestion !
Partager