Verwenden Sie die Grundmatrix, um die Koordinatenumsetzung mit OpenCV zu berechnen

Ich versuche, die Koordinatenentsprechung mehrerer Punkte zwischen zwei Bildern zu berechnen. Ich habe eine Gruppe von Punkten, deren Entsprechungen bekannt sind, ich benutze sie mit OpenCVsfindFundamentalMatrix() um die Grundmatrix zu finden. Ich habe das überprüftx^T * F * x' = (0) für jeden Punkt und das Ergebnis ist immer richtig oder sehr nahe.

Die Sache ist, jetzt möchte ich die Koordinaten eines Punktes auf dem ersten Bild verwenden (y) und die Grundmatrix (F), um die Koordinaten des Punktes auf dem zweiten Bild zu finden (y'). Ich habe zuerst darüber nachgedacht, einfach die obige Gleichung zu verwenden, aber nur die gegebenz desy' Punkt kann es seinunendlich viele lösungen.

Wie sonst kann ich die Grundmatrix verwenden, um die Übersetzungen zu berechnen?

Um es klarer zu machen: Wenn ich die Grundmatrix kenne, die zwei Projektionen "verbindet", wie kann ich sie verwenden, um die Koordinaten eines bekannten Punktes zu übersetzen(a, b, 1) Von der ersten zur zweiten Projektion?

In Anbetracht dessen, dass wir es wissena, b undF in dieser Gleichung: (a ', b ", 1)T * F * (a, b, 1) = (0)

Ich hatte eine einfache Zeichnung als Beispiel gemacht:http://i.imgur.com/drNr2.jpg . Die Idee ist, die Koordinaten des roten Punktes zu finden(xq, yq) in Projektion 2, wenn man bedenkt, dass wir seine Koordinaten in Projektion 1 und die aller anderen Punkte in beiden Projektionen kennen (und einige andere, da der Algorithmus zum Finden der Grundmatrix tatsächlich mindestens 8 Punkte benötigt)

Eine andere Präzision: In meinem Beispiel sind bekannte Punkte koplanar, der untersuchte Punkt muss es jedoch nicht sein.

Ich hoffe das hat mein Problem klarer gemacht :)

Antworten auf die Frage(2)

Ihre Antwort auf die Frage