Wie wandelt sphärische Koordinaten zu equirectangular Projektion Koordinaten?

Vereinfachte Frage

Wie konvertieren Sie eine sphärische Koordinate (θ, φ) in eine position (x, y) auf einem equirectangular Projektion (auch als "geographische Projektion')?

In denen:

  • x ist die Länge, die horizontale position, von -180 bis 180 Grad.
  • y ist die Breite, die vertikale position von -90 bis 90 Grad.
  • θ theta, der horizontale Winkel in Grad, einen Vektor von (0,0,0) zu einem Punkt auf der Oberfläche einer Kugel.
  • φ ist phi, der vertikale Winkel (in Grad), einen Vektor von (0,0,0) zu einem Punkt auf der Oberfläche einer Kugel.

Unten finden Sie die ursprüngliche Frage zurück, wenn ich nicht verstehe das problem gut, aber ich denke, es ist immer noch gut, um zu zeigen, was ist eine praktische Anwendung für diese Lösung.

Kontext

Edit: Die ursprüngliche Frage-Titel war: Wie verwandeln Sie ein Foto in einem bestimmten Winkel zu einem Teil von einem panorama-Foto?

Kann jemand helfen Sie mir mit, welche Schritte sollte ich nehmen, wenn ich will, zu verwandeln, ein Foto zu einem bestimmten Winkel in einer Weise, die ich kann die resultierende (verzerrt/verändert) Bild an der entsprechenden Stelle auf ein equirectangular Projektion, cube map, oder jedes panorama Foto-Projektion?

Welcher Projektion ist die einfachste zu tun, ist gut genug, denn es gibt sehr viele Ressourcen, wie die Konvertierung zwischen verschiedenen Projektionen. Ich weiß nur nicht, wie der Schritt von einem echten Foto zu so einer Projektion.

Ist es sicher davon ausgehen, dass die Kamera bleiben an einer festen Position, und drehen kann in jede Richtung von dort. Die Daten, die ich denke, ist erforderlich, um dies zu tun, ist wahrscheinlich so etwas wie dieses:

  • Horizontalen Winkel von physischen Kamera [-180, +180] (z.B. +140deg).
  • Vertikalen Winkel von physischen Kamera [-90, +90] (z.B. -30deg).
  • Auflösung des Foto - w x h (z.B. 1280 x 720 Pixel).
  • Horizontale Winkel des Fotos (z.B. 70deg).
  • Vertikale Winkel des Fotos (z.B. 40deg).
  • Objektiv-Korrektur a, b, c-Parameter (siehe unten).

Habe ich diese Daten, und ich denke, der erste Schritt ist zu tun, Objektiv-Korrektur, so dass alle Linien gerade sind in der Tat gerade. Und dies kann getan werden mit imagemagick's Die Tonnenförmige Verzerrung, in dem Sie müssen nur füllen drei Parameter: a, b, und c. Die transformation, die auf das Bild angewendet, um dies zu korrigieren ist einfach.

Ich bin fest auf den nächsten Schritt. Entweder ich verstehe nicht ganz verstehen, oder auch die Suchmaschinen werden Sie nicht mir zu helfen, da die meisten Ergebnisse sind über die Konvertierung zwischen den bereits gegebenen Projektionen oder verwenden Sie fortgeschrittene Anwendungen zu Nähen Fotos intelligent zusammen. Diese Ergebnisse haben mir nicht helfen mit der Beantwortung meiner Frage.

EDIT: ich dachte mir, dass vielleicht eine Figur helfen, die erklärt es besser 🙂

Das problem ist, dass ein bestimmtes Foto Rot nicht in die equirectangular Projektion ohne eine transformation. Die Abbildung unten zeigt das problem.

Wie wandelt sphärische Koordinaten zu equirectangular Projektion Koordinaten?

So, ich habe Rot, und ich brauche, um es zu transformieren in Grün. Blau zeigt den Unterschied in der Verwandlung, aber das hängt von der horizontal - /vertikal-Winkel.

  • Equirectangular Projektion, im einfachsten Fall, ändert nichts zahlen. Die projizierte x-Koordinate ist gleich der Länge θ, die projizierte y-Koordinate gleich dem Breitengrad φ. Konstante Faktoren werden so gewählt, entschied sich für die Breite, zeigt null Verzerrung. In Ihrer Anwendung ist, werden Sie wahrscheinlich haben, eine nachträgliche Skalierung / übersetzung pixel-Koordinaten.
  • Bild-stitching in der Regel umfasst "advanced" korrigiert, da in der Praxis die exakte Projektion Parameter (θ, φ, sondern auch Kamera-Parameter), sind unbekannt und schwer zu bekommen.
  • nicht wirklich, ich habe das problem bereits gelöst, aber ich habe noch nicht die Zeit gefunden zu posten, eine Antwort noch. Wird, dass irgendwo in der nächsten Woche. Die resultierende Projektion ist nicht pixelgenau, aber gut genug, um es zu betrachten, ohne das Zoomen in die Ränder der einzelnen Fotos (ich sollte hinzufügen, Unschärfe in der Nähe der Grenze zu einer weiteren Verringerung der übergangs-Artefakt).
  • freut mich zu hören, klingt wie eine gute pragmatische Lösung 🙂
InformationsquelleAutor Yeti | 2017-05-02
Schreibe einen Kommentar