Comment utiliser correctement cv::triangulatePoints()

Je suis en train de recouper certains points avec OpenCV et j'ai trouvé ce cv::triangulatePoints() fonction. Le problème est qu'il n'y a presque pas de documentation ou des exemples.

J'ai quelques doutes à ce sujet.

  1. Quelle méthode faut-il utiliser?
    J'ai une petite recherche sur les triangulations et il y a plusieurs méthodes (Linéaire, Linéaire LS, eigen, itératif LS, itératif propres,...) mais je ne trouve pas celui qui est de l'aide dans OpenCV.

  2. Comment devrais-je l'utiliser? Il semble que comme entrée, il a besoin d'une matrice de projection et 3xN homogène 2D points. Je les ai définis comme std::vector<cv::Point3d> pnts, mais, comme résultat, il a besoin de 4xN tableaux et évidemment, je ne peux pas créer une std::vector<cv::Point4d> car il n'existe pas, alors comment dois-je définir le vecteur de sortie?

Pour la deuxième question j'ai essayé: cv::Mat pnts3D(4,N,CV_64F); et cv::Mat pnts3d;, ni semble fonctionner (elle lève une exception).

  • Avez-vous regarder sur OpenCV documentation site web?
  • en effet je l'ai fait, mais que la documentation ne permet pas de résoudre à aucune de mes questions!
  • vérifier ceci.
  • vérifié et testé déjà :D. je me suis préparé! Ce code n'est pas tout à fait correct. Dans la fonction InterativeLinearLStraingulation() les itérations toujours les sauts à la deuxième fois, parce que les variables u,u1,P et P1 ne sont pas mis à jour, en faisant la condition pour être vrai et de briser la boucle. Je suis triying de lire le livre de l'origine et de corriger le code, mais il n'est pas simple :S
  • aussi vérifié le résultat sans itération (cela devrait fonctionner) mais il semble que cela ne fonctionne pas. Les résultats que j'obtiens ne sont pas fous, mais veillez à ne pas les corriger.
  • Lire la source pour plus d'info: opencv\modules\calib3d\src\triangulate.cpp

InformationsquelleAutor Ander Biguri | 2013-04-30