# Equirektanguläre Projektion
## Einführung

In dieser Lernressource ist das Erstellen einer equirektangulären Projektion das Ziel. Die Lernressource ist anwendungsbasiert, AFrame-Beispiel Durlach ist das erste Anwendungsfall der equirektangulären Projektion. Sie können sich umsehen, indem Sie die Richtung des Blicks mit der Maus ziehen, während Sie die linke Maustaste gedrückt halten.
Voransicht der equirektangulären Projektion in AFrame - Ziehen Sie die Voransicht der equirektangulären Abbildung mit der Maus, während Sie die linke Maustaste gedrückt halten.

### Beispiel der equirektangulären Abbildung

Betrachten Sie die equirektanguläre JPG-Abbildung und erkunden Sie die Verzerrung der Abbildung an der oberen und unteren Seite des rechteckigen JPEG-Bildes.

### Navigation mit mehreren equirektangulären Abbildungen

Die AFrame-Navigation-Beispiel vom Rhein in Deutschland ermöglicht es, von einem Ort am Rhein zu einem anderen Ort in der equirektangulären Voransicht zu springen.

## Unterthemen

* Landkarten und Verzerrung

## Anwendungsbereich

Aus einer Menge von Standardabbildungen der Kamera, die einen vollständigen Kreis von 360 Grad um den Mittelpunkt des Blicks abdecken, können Sie eine equirektanguläre Abbildung erstellen, die eine vollständige Sphäre darstellt. Diese Abbildung kann beispielsweise in Aframe oder anderen panoramischen Open-Source-Anwendungen betrachtet werden, die equirektanguläre Abbildungen unterstützen.

### EQUI2SPH-Projektion

Die zugrunde liegende Projektionsart ist die equirektanguläre Projektion EQUI2SPH, die beispielsweise im geografischen Kontext verwendet wird, wobei eine Kugeloberfläche auf ein rechteckiges Flächenbild projiziert wird. Zunächst möchten wir in dieser Lerneinheit den Anwendungsfall in der 3D-Modellierung über die Verwendung einer vollsphärischen Panoramabildabildung betrachten (siehe Beispiel - bewegen Sie das Blickfeld mit gedrückter Maus).

## Ursprung der Terminologie und Geschichte

Die equirektanguläre Projektion (auch äquidistante Zylindrische Projektion genannt) und die darin enthaltene spezielle Platte Carrée-Projektion (auch geografische Projektion, Lat/Lon-Projektion oder Ebene Karte genannt) ist eine einfache Kartografische Projektion, die Marinus von Tyros zugeschrieben wird, der Ptolemäus um etwa 100 n. Chr. erfunden haben soll. Die Projektion projiziert Meridiane auf vertikale gerade Linien mit konstanter Abstand (für konstante Meridionalintervalle), und Kreise der Breite auf horizontale gerade Linien mit konstanter Abstand (für konstante Breitengradintervalle). Die Projektion ist weder flächengleichmäßig noch konform.

### Implikationen der Verzerrung für die Navigation

Aufgrund der durch diese Projektion eingeführten Verzerrungen hat sie nur wenig Verwendung in der Navigation oder Kadastral-Kartografie und findet ihre Hauptanwendung in der Themenkarte.

### Anwendung in globalen Raster-Datasets

Insbesondere hat die Platte Carrée sich zu einem Standard für globale Geoinformationssystem-Raster-Datasets entwickelt, wie Celestia, NASA World Wind, das USGS-Astrogeologie-Forschungsprogramm und Natural Earth, aufgrund der besonders einfachen Beziehung zwischen der Position eines Bildpunkts auf der Karte und seiner entsprechenden geografischen Position auf der Erde oder anderen kugelförmigen Himmelskörpern.

### Anwendung in der Panoramafotografie

Darüber hinaus wird sie häufig in der Panoramafotografie verwendet, um eine sphärische Panoramabildabildung darzustellen.

## Definition - Equirektanguläre Projektion

* (SPH2EQUI) Die Vorwärtsprojektion transformiert sphärische Koordinaten in planare Koordinaten der equirektangulären Projektion.
* (EQUI2SPH) Die Rückprojektion transformiert equirektanguläre Koordinaten aus der Ebene zurück auf die Kugel. Die Formeln gehen von einem sphärischen Modell aus

### Sphärische - Länge und Breite - SPH

* Länge $\lambda \in [-180^{\circ },+180^{\circ }]$
* Breite $\phi \in [-90^{\circ },+90^{\circ }]$

### Visualisierung

Ein perspektivischer Blick auf die Erde zeigt, wie Breite ($\phi$) und Länge ($\lambda$) auf einem sphärischen Modell definiert sind. Die Graticule-Abstände betragen 10 Grad.

#### Länge - SPH

Die Länge wird als Winkel angegeben, der sich auf die 0°-Grünwich-Meridian als den Primärmeridian bezieht und sich bis $+180^{o}$ nach Osten und $-180^{o}$ nach Westen erstreckt. Die griechische Buchstabe $\lambda$ (lambda) wird verwendet, um die Position eines Ortes auf der Erde östlich oder westlich des Primärmeridians anzugeben.

#### Breite - SPH

Die Breite wird als Winkel angegeben, der sich auf die 0°-Äquatorlinie bezieht und sich bis $+90^{o}$ nach Norden und $-90^{o}$ nach Süden erstreckt. Die griechische Buchstabe $\phi$ oder $\varphi$ (phi) wird verwendet, um diesen Winkel anzugeben.

#### Mnemotechnik - Griechische Buchstabe - Phi

Es gibt zwei verschiedene Notationen für die griechische Buchstabe $\phi$ und $\varphi$. In dieser Lernressource wird die Notation $\phi$ verwendet, um anzugeben, dass es sich um den Winkel handelt, der den Kreis trifft, der sich mit dem Nordpol und dem Südpol schneidet.

### Definition der sphärischen Variablen

Die Projektionen sind mathematische Funktionen/Mappings. Für die Definition dieser Projektionen werden die folgenden Variablen definiert:
* $\lambda$ ist die Länge der zu projektierenden Position;
* $\phi$ ist die Breite der zu projektierenden Position;
* $\phi _{1}$ sind die Standardparallelen (Nord und Süd des Äquators), an denen die Skala der Projektion wahr ist;
* $\phi _{0}$ ist die Mittelbreite der Karte (z. B. $\phi _{0}=0^{\circ }$ Äquator);
* $\lambda _{0}$ ist die Mittellänge der Karte;
* $R$ ist der Radius der Kugel.
Länge und Breite werden hier in Radianten definiert.

### Definition der equirektangulären planaren Variablen - EQUI

* $x_{e}$ ist die horizontale Koordinate der projizierten Position auf der Karte;
* $y_{e}$ ist die vertikale Koordinate der projizierten Position auf der Karte;

### Vorwärtsprojektion - Sphärisch zu planar - SPH2EQUI

${\begin{aligned}x&=R\cdot (\lambda -\lambda _{0})\cdot \cos(\phi _{1})\\y&=R\cdot (\phi -\phi _{0})\end{aligned}}$

### Spezieller Fall - Vorwärtsprojektion

Die Platte Carrée (Französisch, für flache Quadrat), ist der spezielle Fall, bei dem $\varphi _{1}$ Null ist. Diese Projektion projiziert x auf die Länge und y auf die Breite, und wird deshalb manchmal als Breitengrad/Längengrad-Projektion oder Lat/Lon-Projektion bezeichnet.
Wenn $\phi _{1}$ nicht Null ist, wie bei Marinus' $\phi _{1}=36$, oder Ronald Millers $\phi _{1}=(37,5,43,5,50,5)$, kann die Projektion bestimmte Breiten von Interesse bei wahrer Skala darstellen.

### Bemerkung - Ellipsoidisches Modell

Während eine Projektion mit gleichmäßig abgestuften Parallelen für ein ellipsoidisches Modell möglich ist, wäre sie nicht mehr äquidistant, da die Entfernung zwischen Parallelen auf einem Ellipsoid nicht konstant ist. Komplexere Formeln können verwendet werden, um eine äquidistante Karte zu erstellen, deren Parallelen die wahren Abstände widerspiegeln.

### Rückprojektion - Planar zu Sphärisch - EQUI2SPH

${\begin{aligned}\lambda &={\frac {x}{R\cdot \cos(\phi _{1})}}+\lambda _{0}\\\phi &={\frac {y}{R}}+\phi _{0}\end{aligned}}$

### Alternativnamen

In sphärischen Panoramabildern werden üblicherweise:
* $\lambda$ als "Drehung" bezeichnet;
* $\phi$ als "Neigung" bezeichnet;
wobei beide in Grad definiert sind.

## Lernaktivitäten

Die folgenden Lernaktivitäten befassen sich mit der projektiven Geometrie von einem Standard-Snapshot, das mit der Kamera aufgenommen wurde, auf eine Fläche auf der Kugel nach der equirektangulären Projektion. Beachten Sie, dass Sie zwischen den folgenden projektierten Umrechnern unterscheiden müssen:
* (SPH2EQUI / EQUI2SPH): (Breite, Länge)-Koordinaten der Kugel $\Longleftrightarrow$ $(x_{e},y_{e})$-Koordinaten der equirektangulären Abbildung
* (SPH2IMG / IMG2SPH): $(x_{e},y_{e})$-equirektanguläre Koordinaten $\Longleftrightarrow$ $(x,y)$-Koordinaten der Standardabbildung Ihrer Smartphone- oder Kameraabbildung.
* (EQUI2IMG / IMG2EQUI): (Breite, Länge)-Koordinaten der Kugel $\Longleftrightarrow$ $(x,y)$-Koordinaten der Standardabbildung Ihrer Smartphone- oder Kameraabbildung.

### Bildwinkel

Für die Lernaktivitäten ist es wichtig, den
* (HAV) horizontalen Bildwinkel (Horizontal Angle of View) und
* (VAV) vertikalen Bildwinkel (Vertical Angle of View) zu verstehen.

### Lernaufgabe - Winkel des Blicks

Der HAV und VAV unterscheiden sich von Kamera zu Kamera. Erklären Sie, warum der HAV und VAV für die Berechnung der IMG2EQUI-Projektion relevant sind. Verwenden Sie die folgende Abbildung, um die Anforderungen für die Projektion zu erklären.

### Visualisierung des Winkels des Blicks

Die folgende Abbildung zeigt den HAV und VAV sowie den diagonalen Winkel des Blicks (DAV).

### Bemerkung - IMG2EQUI-Projektion

Die aktuelle Projektionsart der Lernaktivitäten ist die (IMG2EQUI)-Projektion zwischen den $(x,y)$-Koordinaten der Standardabbildung und den verzerrten $(x_{e},y_{e})$-Koordinaten der equirektangulären Abbildung und umgekehrt.

### HAV und VAV als Kameraeigenschaften

Aufgrund der Tatsache, dass verschiedene Kamerahauptstücke unterschiedliche Winkel des Blicks (HAV und VAV) haben, kann die sichtbare Fläche der Standardabbildung (aufgenommen mit Ihrem Smartphone) variieren. Die folgende Animation zeigt verschiedene horizontale Winkel des Blicks (HAV) z. B. für die Aufnahme eines Schnappschusses senkrecht nach oben zum Himmel oder zur blauen Decke.

## Polare Region - Verzerrung

Die Projektion verursacht besonders an den "Nordpol" und dem "Südpol" die schwerste Verzerrung im Vergleich zu den Entfernungen, die auf der Oberfläche der Kugel gemessen werden. Für Panoramabilder ist die Verzerrung nur eine Frage der Speicherung der sphärischen Pixelinformationen in einem rechteckigen Format. Auf dem Bild eines Marktplatzes sehen Sie, dass die Panoramabilder die rechteckigen Bilder in eine natürliche Ansicht überführen, in der Sie sich umsehen und die Lage von verschiedenen Winkeln und mit mehreren equirektangulären Bildern aus vielen Orten (siehe Fluss Rhein-Beispiel Köln) erkunden können.

### IMG2EQUI-Projektion - Polare Regionen

In diesem Lernschritt nehmen wir Bilder mit einer Standardkamera oder einem Smartphone auf und möchten die (Breite, Länge)-Koordinaten der Kugel von den (x,y)-Koordinaten der Standardabbildung berechnen. In der ersten Lernschritt betrachten wir die Kugel in den Polaregionen. Diese Regionen sind die am stärksten verzerrten Bereiche in den equirektangulären Projektionen.

### IMG2SPH-Projektion - Schnappschüsse für Lernaufgabe

* Nehmen Sie Ihr Mobiltelefon und nehmen Sie zwei Schnappschüsse senkrecht nach unten und senkrecht nach oben von Ihrem Boden und von Ihrer Decke. Wählen Sie eine Position in Ihrem Raum, an der sich oben und unten sichtbare Elemente befinden (z. B. eine Lampe, Holzdekorationen, ...). Alternativ können Sie die beiden Bilder außerhalb mit einem bewölkten Himmel und Objekten auf dem Boden erstellen.
* Wählen Sie einen Mittelpunkt eines Kreises und einen Radius, der in beide Bilder passt (maximieren Sie den Radius des Kreises,
* In diesem Modul werden diese beiden Bilder auf die Polaregionen der Kugel innerhalb des rechteckigen Koordinatensystems der Abbildung projiziert.

#### Anfangszustand - Bild Himmel

Die folgende Abbildung zeigt den Anfangszustand, indem ein Bild vom Himmel aufgenommen wird. Die Kamera befindet sich im Zentrum des roten Kugel und nimmt ein Bild der blauen Decke oder des Himmels auf. Die Lernaufgabe besteht nun darin, die Winkel der equirektangulären Projektion für den entsprechenden Punkt auf der Kugel zu berechnen.

#### Seitenansicht mit polarem Bild

Die Seitenansicht kann verwendet werden, um die Berechnung der grünen Winkel mit $\alpha :=\arctan(x)$ zu ermitteln. Der relevante Winkel für die equirektanguläre Projektion der Polaregion ist rot markiert.

#### Verwendung trigonometrischer Funktionen

Um trigonometrische Funktionen anwenden zu können, muss man in der obigen Animation ein rechtwinkliges Dreieck identifizieren. Dazu bezeichnet man zunächst den folgenden Punkt M$_P$:=(0, 4){\textstyle M_{P}:=(0, 4)} in der obigen Animation. Das Polygon ⟨M, P$_2$, M$_P$⟩{\textstyle \langle M, P_{2}, M_{P}\rangle } ist dann rechtwinkliges Dreieck. Nach Definition des Tangens erhält man folgende Gleichung:
    $\tan(\alpha ):={\frac {|M_{P}P_{2}|}{|M_{P}M|}}$

#### Bildwinkel

Der komplette Bildwinkel ist $2\cdot \alpha$. Wenn man die Distanz zum Objekt $|M_{P}M|$ (z.B. zu einer Tür) kennt, die Tür in der Breite das gesamte Kamerabild bis zum Bildrand ausfüllt und man auch die Breite der Tür $|P_{1}P_{2}|$ gemessen hat, dann kann man den Bildwinkel wie folgt berechnen:
    $2\cdot \alpha :=2\cdot \arctan \left({\frac {|M_{P}P_{2}|}{|M_{P}M|}}\right)=2\cdot \arctan \left({\frac {|P_{1}P_{2}|}{2\cdot |M_{P}M|}}\right)$

#### Verwendete Teil des Schnappschusses mit Kamera

Das erste Bild ist ein Schnappschuss mit einer Kamera, der senkrecht nach oben zum Himmel (in den Himmel) aufgenommen wurde. Der rote Kreis ist die projizierte Fläche aus dem Bild (Himmel/Decke) auf einen Teil der equirektangulären Abbildung, die in der nächsten Abschnitt der Lernressource dargestellt wird.

#### Aufgabe - Equirektanguläre Projektion des Kreises - Rechteck

Erklären Sie, warum die obige Kreisscheibe in dem Kamerabild zu einem Rechteck in der equirektangulären Projektion transformiert wird.

#### Lernaufgabe - Funktion für Koordinatentransformation IMG2EQUI

Wir bezeichnen die Farbinformation eines Bildpunkts in der Quelle-Abbildung (IMG) mit $P_{IMG}(x,y)$ und die Farbinformation des Bildpunkts in der Zielabbildung (EQUI) mit $P_{EQUI}(x_{e},y_{e})$. Definieren Sie die Funktion $P_{EQUI}(x_{e},y_{e})$, indem Sie die entsprechenden $(x,y)$-Koordinaten in der Quelle-Abbildung berechnen. Diese Berechnung wird verwendet, um die Pixel in der Zielabbildung zu setzen, indem Sie
    $P_{EQUI}(x_{e},y_{e}):=P_{IMG}(x,y).$
Bemerkung: Sie benötigen grundlegende Kenntnisse in der Trigonometrie, um diese Lernaufgabe zu erfüllen.

#### Koordinatensystem der Grafik

Das Koordinatensystem einer Abbildung hat eine andere Orientierung in der y-Achse. Dies wird in der Abbildung gezeigt.
* $x_{max}$ ist der maximale Wert auf der x-Achse der Abbildung
* $y_{max}$ ist der maximale Wert auf der y-Achse der Abbildung
* Das Ursprung des Koordinatensystems befindet sich oben links.
Beachten Sie dies, wenn Sie das Koordinatensystem für Ihre Experimente mit Projektionen verwenden (siehe auch equirektanguläre Projektion).

#### Rechteckiges zu Sphärisch - Projektion

Jetzt verwenden wir die Standardrechteckabbildung auf der rechten Seite als Eingabe für die equirektanguläre Projektion auf die Kugel und betrachten die Abbildung in der panoramischen Voransicht auf der Kugel. Was kann beobachtet werden, wenn man die projizierte Fläche des roten Decken und eines markierten grünen Rechtecks auf dem Boden analysiert?
* Ziehen Sie die Abbildung nach oben zur Decke
* und nach unten zum Boden.

#### Screenshots - Projektion auf Kugel der Standardabbildung

Die folgenden beiden Beispiele zeigen, wie ein Standardbild (Graphics Coordinate System) als equirektanguläres Bild an den Polen interpretriert wird. Aus Rechtecken werden Kreise.
Screenshot der Projektion :
| Decke/Himmel | Boden |

#### Lernaufgabe - Projektion des Himmels in Grafik-Koordinatensystem

Grafiken haben ein eigenes Koordinatensystem, um Punkte in Pixelgrafiken oder geometrische Objekte wie Linien, Polygone und Kreise im Koordinatensystem darzustellen. Die Abbildung zeigt das Koordinatensystem der Abbildung. Beachten Sie, dass die Koordinate der y-Achse eine andere Orientierung als die y-Achse im standardmäßigen 2D-Cartesisches Koordinatensystem hat. Diese Information ist relevant, wenn Sie mit equirektangulären Projektionen in Projektive Geometrie Playground experimentieren.
Berechnen Sie den $y_{Himmel}$ für einen bestimmten Winkel des Blicks Ihrer Kamera.

#### Lernaufgabe - Berechnung

Berechnen Sie die equirektanguläre Projektion für jeden $(x,y)$-Punkt im roten Kreis der Quelle-Abbildung (IMG) in die Zielabbildung (EQUI) mit:
* LibreOffice - HAV/VAV: Nehmen Sie ein Bild eines Tores und berechnen Sie den horizontalen und vertikalen Winkel des Blicks (HAV und VAV)
* LibreOffice - Koordinaten: Erstellen Sie ein Tabellenkalkulationsdokument für die Berechnung der Koordinaten aus einer gegebenen Koordinate in der equirektangulären Abbildung die entsprechenden Koordinaten in der Quelle-Abbildung Ihrer Kamera.
* Javascript und HTML-Canvas - (siehe Lernumgebung für projektive Geometrie|),
* Octave mit image-Paket, oder
* Python mit Image-Processing-Bibliothek pillow von Jeffrey A. Clark
Wählen Sie eine Implementierung Ihrer Wahl. LibreOffice hat die minimalen Anforderungen an Programmierkenntnisse, aber nur die Koordinatentransformation kann ohne visuelle Ausgabe durchgeführt werden.

### Lernaufgabe - Himmel - Nordpol

Ein Himmelbild kann verwendet werden, um einen kreisförmigen Bereich in der Quelle-Abbildung auf den rechteckigen Teil an der oberen Seite der generierten equirektangulären Abbildung zu projizieren.
Importieren Sie die equirektanguläre Projektion in Aframe, um das Ergebnis zu betrachten.

#### Lernaufgabe - Boden - Südpol

Übertragen Sie das Gelernte vom Nordpol auf den Südpol und projizieren Sie das Strandbild als Boden auf den Südpol.
* Was sind die Unterschiede und Ähnlichkeiten zwischen beiden Projektionen?

## Resultate - equirektanguläre Bildnutzung

* Frary-Dining-Hall-360-Grad-Ansicht.jpg - PanoViewer
* Endgültige Ergebnisse können in Aframe (siehe HuginSample-Dateien auf Github) oder mit der Wiki betrachtet werden,
* Aldara-Parks-360-Grad-Ansicht in Aframe mit einer bereits hochgeladenen equirektangulären Abbildung in Wikimediakommons von U.Bardins
* PanoViewer-360-Grad-Ansicht von Aldara-Parks-Abbildung