Wie man cv :: triangulatePoints () richtig einsetzt
Ich versuche einige Punkte mit OpenCV zu triangulieren und habe dies gefundencv::triangulatePoints()
Funktion. Das Problem ist, dass es fast keine Dokumentation oder Beispiele dafür gibt.
Ich habe einige Zweifel.
Welche Methode wird verwendet? Ich habe ein wenig über Triangulationen recherchiert und es gibt verschiedene Methoden (Linear, Linear LS, Eigen, Iteratives LS, Iteratives Eigen, ...), aber ich kann nicht herausfinden, welche es in OpenCV verwendet.
Wie soll ich es benutzen? Es scheint, dass es als Eingabe eine Projektionsmatrix und benötigt3xN homogen2D Punkte. Ich habe sie als definiertstd::vector<cv::Point3d> pnts
, aber als Ausgang braucht es4xN Arrays und natürlich kann ich keine erstellenstd::vector<cv::Point4d>
Da es nicht existiert, wie soll ich den Ausgabevektor definieren?
Für die zweite Frage habe ich versucht:cv::Mat pnts3D(4,N,CV_64F);
undcv::Mat pnts3d;
scheint auch nicht zu funktionieren (es löst eine Ausnahme aus).