Opencv praktisch rotierenden Kamera/übersetzung für bird ' s eye view
Habe ich mit einer kalibrierten Kamera, wo ich genau weiß, die intrinsische und extrinsische Daten. Auch die Höhe der Kamera bekannt ist. Jetzt möchte ich praktisch drehen Sie die Kamera für immer aus der Vogelperspektive, so dass ich darauf aufbauen kann der Homography matrix mit den drei Drehwinkel und die übersetzung.
Ich weiß, dass 2 Punkte verwandelt werden können, von einem Bild zum anderen über Homography als
x=K*(R-t*n/d)K^-1 * x'
gibt es ein paar Dinge, die ich möchte nun wissen:
wenn ich will, um wieder die Bild-Koordinate in ccs, die ich multipliziert es mit K^-1, richtig? Als Bild-Koordinate verwende ich (x',y',1) ?
Dann muss ich baute eine drehmatrix für die Drehung der ccs...aber die Konvention soll ich verwenden? Und wie weiß ich, wie meine WCS?
Das nächste, was ist die normale und der Abstand. Ist es richtig, nur drei Punkte auf dem Boden liegen und berechnen Sie die normal aus? und ist der Abstand dann die Kamera-Höhe?
Außerdem würde ich gerne wissen, wie kann ich ändern, die Höhe, die praktisch auf der Suche Vogel-view-Kamera, so dass ich sagen kann, ich will, um zu sehen, die Grundplatte aus 3 Metern Höhe. Wie kann ich mit der Einheit "meter" in der übersetzung und homography Matrix?
So weit für jetzt, es wäre schön, wenn jemand aufklären könnte und mir helfen. Und bitte nicht schlagen die Generierung der Vogelperspektive mit "getperspective", ich hab auch schon versucht, aber dieser Weg ist nicht geeignet für mich.
Senna
InformationsquelleAutor Johannes | 2011-07-07
Du musst angemeldet sein, um einen Kommentar abzugeben.
Die den code würde ich dir raten, (es ist einer von mir), meiner Meinung nach ist es beantwortet viele Ihrer Fragen,
Wenn Sie möchten, dass die Entfernung, ich würde präzise, dass Sie in die Z-matrix, die (4,3) - Koeffizienten.
Hoffe, es wird dir helfen...
Nun, ich habe gerade heraus gefunden, dass es funktioniert auch mit der homography H=k(R+nt/dist)*k^-1, aber ich habe immer noch das problem mit der Höhe. für die normale Berechnung nahm ich zwei Bild Punkte, die auf dem Boden liegen, sollte dies ok sein, richtig? oder ist es besser, nehmen Sie n=(0,0,1)? trotzdem, müssen Sie herausfinden, irgendwie zu ändern-Kameras position etwa 2 Meter über dem Boden
Es tut mir Leid Johannes, aber könntest du genauer in allen Ihren Formeln, was ist k,n,t,R, wenn ich denke, es ist der scaling-Faktor/Punkt/übersetzung vec/rotation Matte, auch wenn ich lieben würde, in Ihrem Geist, um Ihnen zu helfen, leider bin ich nicht ! Können Sie ein lil bisschen mehr zu deiner Frage... Außerdem, wenn du gerne die Antwort, können Sie es akzeptieren und/oder upvote für Sie. Das ist die Philosophie von stackoverflow ich denke mal, vielen Dank ! Julien,
also für beeing so unprecisely. Also K ist meine Kamera intrinsische Matrix: (f,0,cx;0,f,cy;0,0,1) n ist die normale der Ebene,dist die Entfernung zur Kamera zentrieren(was ich davon ausgehen ist, 0.54 m), t ist meine übersetzung vector, R die rotationsmatrix. Nach Faugeras einen Punkt abgebildet werden kann, um einen Punkt über Homography, die definiert ist durch: H=K*(R+t*n/dist)*K^-1
haben Sie irgendwelche Referenzen, die im detail beschreiben die Transformation, die Sie oben aufgeführt sind? Ich habe alle wiki-Artikel über die Kamera-Modell, 3d-Transformationen, Perspektive, etc, aber noch nicht erleuchtet.
InformationsquelleAutor jmartel
Dieser code funktioniert für mich, aber ich weiß nicht, warum die Roll-und Pitch-Winkel ausgetauscht werden. Wenn ich "alpha", das Bild verzogen ist und in der Tonhöhe, und wenn ich "beta" das Bild verzogen Rolle. So, ich änderte meine rotation matrix, wie kann unten gesehen werden.
Auch, der RY hat ein signal-Fehler. Sie können überprüfen, Ry an: http://en.wikipedia.org/wiki/Rotation_matrix.
Die rotation metrix, die ich benutze:
Hinsichtlich
InformationsquelleAutor Matheus Laranjeira