/ / Wie berechnet man 3D-Koordinaten eines Punktes in OpenCV - Bild, Bildverarbeitung, OpenCV, Computer Vision

Wie man 3D Koordinaten eines Punktes in OpenCV berechnet - Bild, Bildverarbeitung, opencv, Computer-Vision

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 № 1

Sie 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.