Ich habe ein kalibriertes Stereokamerasystem undPixelpositionen desselben Objekts in Ansichten beider Kameras. Gibt es eine einfache Möglichkeit, 3D-Weltkoordinaten des Objekts mithilfe von OpenCv (und intrinsischen / extrinsischen Parametern) zu berechnen, oder muss ich mich mit 3D-Linien beschäftigen, die für beide Kameras erzeugt werden, und Transformationen zwischen ihnen? Kann CvReprojectImageTo3D helfen? Danke vielmals
Antworten:
1 für die Antwort № 1Sie können diese Punkte triangulieren. Für jede Kamera wissen Sie, dass x = IP * EP * X, mit x = homogenen 2D-Bildschirmkoordinaten, IP = intrinsische Kameramatrix, EP = extrinsische Kameramatrix und X 3D-homogenen Weltkoordinaten. Diese Formel ergibt 2 lineare Gleichungen pro Kamera, was zu einem linearen Problem A * X = B führt. Fügen Sie für jede Kamera A an:
Ps = IP * EP
A(row 1) = x.x * Ps(row 3) - Ps(row 1)
A(row 2) = x.y * Ps(row 3) - Ps(row 2)
B(row 1 & 2) = 0
Es gibt 4 Unbekannte. Um 0 als Lösung zu vermeiden, hängen Sie [0 0 0 1] an A und [1] an B. an.
Das Lösen kann mit dem gemacht werden Jacobi-Methode, oder etwas ähnliches.
Ich habe keine Methode in OpenCV gefunden / kenne, aber die Implementierung der obigen Methode sollte möglich sein, wenn Sie wissen, was Kalibrierungsmatrizen sind.