Konvertieren eines 2D-Bildes zeigen Sie auf eine 3D-Welt zeigen

Ich weiß, dass im Allgemeinen Fall, wodurch diese Umwandlung ist unmöglich, da die Tiefe Informationen verloren gehen, die von 3d nach 2d.

Allerdings habe ich eine Feste Kamera und ich weiß, seine Kamera-matrix. Ich habe auch eine planare Kalibrierung Muster bekannten Dimensionen - sagen wir mal, in Welt-Koordinaten es hat Ecken (0,0,0) (2,0,0) (2,1,0) (0,1,0). Mit opencv kann ich schätzen das Muster in der pose, wodurch die translation und rotation Matrizen benötigt werden, um Projekt zu einem Punkt auf dem Objekt um ein pixel in das Bild.

Nun: dieses 3d-Bild-Projektion ist einfach, aber wie wäre der andere Weg? Wenn ich abholen ein pixel in dem Bild, das ich wissen ist Teil des Kalibrierungs-Muster, wie bekomme ich die entsprechende 3d-Punkt?

Ich könnte iterativ wählen Sie einige zufällige 3d-Punkt auf die Kalibrierung Muster -, Projekt-2d und optimieren der 3d-Punkt auf der Grundlage der Fehler. Aber das scheint ziemlich schrecklich.

Gegeben, dass diese unbekannten Punkt hat die Welt-Koordinaten etwas wie (x,y,0) -- da muss es liegen, die auf der z=0 Ebene -- wie es scheint, sollte es eine transformation, die ich anwenden kann, anstatt die iterative Unsinn. Mein Mathe ist nicht sehr gut aber kann jemand arbeiten aus dieser transformation und erklären, wie Sie ableiten?

  • Wie kann ich wissen, die Welt-Koordinaten (x,y,z)?
InformationsquelleAutor FusterCluck | 2013-01-25
Schreibe einen Kommentar