Ist es möglich, eine fronto-parallele Ansicht der Bild- oder Kamera-Position durch 2D-3D-Punkte-Beziehung zu erhalten?

StackOverflow https://stackoverflow.com/questions/8838158

Frage

Ist es möglich, eine Frontparallelansicht der Bild- oder Kamera-Position durch 2D-3D-Punkte-Beziehung zu erhalten OpenCV?

Dafür habe ich intrinsische und extrinsische Parameter. Ich habe auch 3D-Koordinaten von Kontrollpunkten (die in einer Ebene in einer Ebene) auf dem Bild (Beziehung 2D-3D) liegen.

Tatsächlich brauche ich Ort und Ausrichtung der Kamera, aber es ist nicht schwierig, sie zu finden, wenn ich Bild in die fronto-parallele Ansicht umwandeln kann.

Wenn es mit OpenCV nicht möglich ist, können die anderen Bibliotheken diese Aufgabe lösen?

War es hilfreich?

Lösung

Die Lösung basiert auf den Formeln in der OpenCV -Dokumentation Kamerakalibrierung und 3D -Rekonstruktion

Betrachten wir die numerische Form ohne Verzerrungskoeffizient (im Gegensatz zur Matrixform).

Wir haben u und v.
Es ist leicht zu berechnen x' und y'.
Aber x und y kann nicht berechnet werden, da wir jeden ungleich Null auswählen können z.
Die Linie in 3D entspricht einem Punkt im 2D -Bild.

Um dies zu lösen, nehmen wir zwei Punkte für z=1 und z=2. Dann finden wir 2 Punkte im 3D -Raum, die die Linie angeben (x1,y1,z1) und (x2,y2,z2).

Dann können wir uns bewerben R-1 zu (x1,y1,z1) und (x2,y2,z2) Dies führt zu einer Linie, die durch zwei Punkte bestimmt wird (X1, Y1, Z1) und (X1, Y1, Z1).

Da unsere Kontrollpunkte in einer Ebene liegen (die Ebene der Ebene ist z = 0, können wir entsprechend finden X und Y Punkt, der ein Punkt in 3D ist.

Nach der Normalisierung von angewendet von mm Zu Pixeln erhalten wir ein fronto-paralleles Bild.

(Wenn wir das Eingabebild verzerrt haben, sollten wir es zuerst nicht stortieren)

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top