Ich habe ziemlich viele Probleme damit, darüber nachzudenken, wie man eine Vogelperspektive mit vier Kameras macht, so gesehen in Luxusautos . Hier ist das Original, das ich als Beispiel für diese Frage verwenden werde ...
Im Moment habe ich es so gemacht, dass das Bild mit .getPerspectiveTransform
verzerrt wird, aber das ist nur für ein Bild.
Ich brauche offensichtlich vier und habe keine Ahnung, wie man diese Bilder zusammenfügt. Ich bin auch ahnungslos, wenn die Bilder so aussehen sollen. Hier ist der Code, den ich derzeit habe:
%Vor%und hier ist das Endbild, das ich gerne haben möchte (Ein Freund, der mit Photoshop zusammengesetzt wurde) ...
Um die Transformation zu implementieren, müssen Sie auf die Funktion getPerspectiveTransform
verweisen. Es dauert:
dst: Koordinaten der entsprechenden Viereckscheitelpunkte im Zielbild.
Ich denke, dass es kein einfaches Problem ist, "src" und "dst" zu definieren. Es benötigt einige Berechnungen basierend auf realen Daten und kann nicht alleine gelöst werden, nur durch einen Blick auf die Bilder.
Für mich ist die Schlüsselidee einen Plan der gewünschten Szene zu machen (wie er aussehen muss). Es sollte echte Daten verwenden wie:
Dann können Sie einen guten Wert für die Entfernung E-F finden, abhängig von der Größe des "Ansichtsfensters Ihrer fiktiven Vogelsichtkamera". Danach ist dein Job fast fertig.
Der Parameter dst
ist einfach eine skalierte Version des Rechtecks I J L K (für die obere Kamera). Abhängig von der Größe in Pixel des Ausgabebildes.
Der Parameter src
sollte ein Rechteck in Ihrem Foto sein. Seine Breite füllt das gesamte Bild . Die Höhe muss aus der E-F gewollten Entfernung berechnet werden .
Sie können die Höhe des roten Rechtecks auf zwei Arten berechnen. Entweder Sie platzieren "Marker" in der realen Szene (oder Sie versuchen, einige zu finden), um automatisch eine horizontale Linie zu finden. Oder Sie können versuchen, es als eine komplexe Funktion des Höhenwinkels Ihrer Kamera zu berechnen (aber ich möchte Sie beraten, ich denke, es scheint ziemlich kompliziert).
So hätte ich dieses Problem gelöst. Ich hoffe es hat geholfen:)
Tags und Links python opencv computer-vision perspectivecamera