Wie konvertiere ich ein normales Foto in ein gleichwinkliges Bild?


12

Ich habe ein normales Panoramabild. Wie konvertiere ich es in ein gleichwinkliges Bild (normal → gleichwinklig)?

Die meisten Ergebnisse, die ich bei Google finde, sind eine Konvertierung in die entgegengesetzte Richtung (gleichwinklig → normal).

Dies ist das Bild, das ich konvertieren möchte ( HR-Link )

Geben Sie hier die Bildbeschreibung ein


Beginnen Sie mit einem sphärischen 360-Grad-Foto oder machen Sie manuell Fotos?
AndrewH

Ich habe ein 3D-Bild erstellt. Man könnte es mit einem normalen Foto vergleichen. Ich möchte es in ein gleichwinkliges Bild umwandeln.
Bob van Luijt

Ich bin nicht sicher, wie ich es aus einer 3D-Szene machen soll, aber zum Zusammenfügen von Fotos können Sie PTGui oder Hugin verwenden .
AndrewH

Muss es mathematisch genau sein? Sie könnten das Bild um einen Zylinder wickeln und ein Bild in ortho-Perspektive speichern?
Wolff

Nein, tut es nicht, ich kämpfe wirklich, Hugin scheint falsche Bilder zu erstellen.
Bob van Luijt

Antworten:


7

Das gleichwinklige Bild stellt eine Kugel dar, die verzerrt ist, sodass Meridiane und Parallelen auf der Kugel als gerade vertikale und horizontale Linien dargestellt werden. Ein Beispiel aus Wikipedia:

Geben Sie hier die Bildbeschreibung ein

Links gibt es eine sphärische Karte und rechts die äquivalente ebene Karte, die gleichwinklige Projektion von der Kugel auf ein Rechteck.

Es gibt keine Dehnung am Äquator, aber das Bild wird an anderer Stelle horizontal gestreckt. Je mehr Dehnung, desto weiter ist der Punkt vom Äquator entfernt. Ober- und Unterkante enthalten eigentlich nur einzelne Punkte - die Pole.

Das Rechteck hat Proportionen W / H = 2: 1. Dies spiegelt die Tatsache wider, dass der Abstand zwischen den Polen entlang der Kugel genau die Hälfte der gesamten Rundreise entlang des Äquators beträgt.

Sie wollten Ihr Bild in ein rechteckiges Bild konvertieren. Scheinbar sind die Proportionen 2: 1, so dass es bereits gleichwinklig ist, wenn die entsprechende Kugel dies ist:

Geben Sie hier die Bildbeschreibung ein

Die Hälfte des Bildes ist hinter der Kugel versteckt, aber da ist es. Wie Sie sehen, werden die oberen und unteren Ränder Ihres Bildes an Punkten, den Polen, eingeklemmt.

Ich denke, Sie sehen dies als nutzloses Stück Mathe-Sophistik an, Sie haben etwas anderes erwartet. Ich denke du willst

1) ein gleichwinkliges Bild, das eine Kugel mit Ihrem Bild als Teil der Oberfläche darstellt, ohne dass die gesamte Kugel damit bedeckt werden muss

2) Wenn man es in der Mitte der Kugel sitzen sieht, kann man Ihr Bild auf der Kugel ohne Verzerrung und in so großer Größe sehen, dass das Bild einen wesentlichen Teil des Sichtfelds abdeckt, beispielsweise einen Sektor mit einer Breite von 90 Grad und einer Breite von 45 Grad Grad hoch.

Wenn Sie Verzerrungen akzeptieren, erhöhen Sie einfach die Leinwandgröße auf 400%

Geben Sie hier die Bildbeschreibung ein

Auf einer von außen gesehenen Kugel ist dies:

Geben Sie hier die Bildbeschreibung ein

(Entschuldigung für die Glanzbilder, mein Freeware-CAD-Programm erlaubt keine Bearbeitung der Lichter.)

Affinity Photo verfügt über Layer> Live-Projektion> Equirectangular, wodurch das Gewicht innerhalb der Kugel angezeigt werden kann, als ob das Bild auf die Innenfläche der Kugel gemalt worden wäre und sich der Betrachter im Mittelpunkt befindet. Es zeigt dies:

Geben Sie hier die Bildbeschreibung ein

Gebogener Zaun und Horizont sind offensichtlich unerwünscht, aber die Sonne ist immer noch ziemlich rund. Das liegt daran, dass es viel kleiner ist und sich in der Nähe der Äquatorlinie befindet. Horizont und Zaun sind gekrümmt, weil sie sich tatsächlich auf horizontalen Kreisen befinden (= Parallelen der sphärischen Karte), man beobachtet sie ein wenig nach unten und sieht sie als Ellipsenbögen.

Man kann den ursprünglichen Bildbereich mit kompensierender Verzerrung begradigen, d. H. durch Verziehen oder genauer mit mathematischen Verzerrungsgleichungen (Affinity P unterstützt sie auch).

Affinity Photo ermöglicht Bildbearbeitungen im Live-Projektionsmodus. Die Änderungen werden auf das zugrunde liegende gleichwinklige Bild angewendet, aber man beobachtet die Projektion auf die Kugel. Hier ist ein grober Verzerrungsversuch:

Geben Sie hier die Bildbeschreibung ein

Sie können auch das Originalbild einfügen und es zu einer bloßen Hintergrundebene zusammenführen, die sich unter Live-Projektion befindet:

Geben Sie hier die Bildbeschreibung ein

Dies ist jedoch keine allgemeine Lösung. Sobald der Beobachter seinen Kopf ein wenig dreht, sieht er auf eine neue Art verzerrte Szene (= eine flache Karte, die von einer kleinen Seite gesehen wird)

Geben Sie hier die Bildbeschreibung ein

Es gibt keine allgemeine Lösung, da Sie keine 3D-Szene haben, sondern nur ein flaches Bild auf einer 3D-Kugel.

Meiner Meinung nach kann die Abbildung der Umgebung als einzelnes Bild auf eine Kugel und die Betrachtung vom Mittelpunkt aus nur dann eine plausible virtuelle Realität sein, wenn die abgebildete Szene so weit entfernt ist, dass sie keine Perspektive haben kann. Selbst in diesem Fall benötigt man eine clevere Verzerrung des Ansichtsfensters, um die scheinbare Entfernung unendlich zu machen, nicht = den Radius der Kugel. Die Verzerrung sollte bestehen bleiben, wenn sich die Blickrichtung ändert.

Diese Antwort wurde nach Überprüfung dieses viel späteren Falls komplett neu geschrieben: Wie kann ich gleichwinklige (360-Grad-) Bilder malen?


11

Sie können das auf Ihrem Bild nicht so machen, wie Sie es haben.

1) Sie möchten eine zylindrische Projektion auf eine Kugel. Zuerst muss Ihre Leinwand ein genaues Verhältnis haben. 3.1416: 1 (Verwenden Sie eine beliebige Leinwand in Pixelgröße, z. B. 3141 x 1000 Pixel)

Geben Sie hier die Bildbeschreibung ein

2) Und Sie müssen (normalerweise) den Horizont in der Mitte der Leinwand haben.

Geben Sie hier die Bildbeschreibung ein

Bei einer zylindrischen Projektion (von einer Kugel) haben Sie aufgrund der vertikalen projizierten Abmessung gegenüber der tatsächlichen Höhe dieses Segments eine spezifische Verformung der Projektion. Sie müssen dies also kompensieren, wenn Sie Ihren Cartoon auf eine flache Leinwand zeichnen.

Eine einfache Möglichkeit hierfür ist die Verwendung des Sphärisierungsfilters in Photoshop. (In der Arcaic-Version, die ich gerade auf diesem Computer habe, ist Filter> Verzerren> Sphärisieren)

Sie müssen dies jedoch NUR auf der vertikalen Achse verzerren.

Geben Sie hier die Bildbeschreibung ein

Außerdem müssen Sie definieren, welchen Teil eines 360-Grad-Panoramas Sie haben. Stellen Sie sich ein anderes Huhn vor, das ein Foto macht. Was wäre der Winkel des verwendeten Objektivs?

Ich fühle, dass es ein Weitwinkelobjektiv ist, lässt Sie wie 120 ° Winkelfeld aufnehmen. Dies bedeutet, dass Sie Ihr Bild zu dem Material vervollständigen müssen, das Sie hinter dem Hühnerfotografen haben.

Geben Sie hier die Bildbeschreibung ein


Die Google VR-Anwendung, die Sie verwenden möchten, besagt, dass eine zylindrische Projektion erforderlich ist, fordert jedoch ein Verhältnis von 2: 1 für Ihr Bild an. Eine 2: 1-Projektion ist normalerweise eine sphärische Projektion mit einer anderen Verformung, aber es ist beispielsweise schwieriger, sie in einem Video zu erzielen.

Aus praktischen Gründen werden tatsächlich zylindrische Projektionen angefordert, sodass Sie als letzten Schritt einfach Ihr Original 3.1416: 1 bis 2: 1 neu abtasten.

Geben Sie hier die Bildbeschreibung ein

Probieren Sie einfach das endgültige Bild erneut aus. Wenn Ihre Leinwand 3141 x 1000 Pixel groß war, sampeln Sie sie einfach auf 2000 x 1000 Pixel neu. Ernten Sie es nicht. Das Huhn sieht schlanker aus, wird aber bei der VR-Anwendung wieder fett.


Für Ihre erste Leinwand: Auf Ihrem spezifischen Bild ist es schwierig, den Blickwinkel zu bestimmen, aber lassen Sie uns 3 Szenarien sehen.

(A) Ihr Sichtfeld ist um 120 ° herum, sodass Sie 3 Fotos der niedlichen Haustiere aufnehmen können, da Ihr veröffentlichtes Bild 2048 ist. Die Leinwand muss 2048x3 = 6144px groß sein und diese nun mit pi = 1955px teilen

6144x1955px

(B) Wenn Sie jedoch nicht möchten, dass die Haustiere zu klein sind, nehmen wir an, dass das Foto 180 ° = 2048x2 = 4096 / pi = 1303 abdeckt

4096 x 1303 Pixel

(C) Oder mit den Zahlen spielen.

Geben Sie hier die Bildbeschreibung ein


Ooooohhhh .... Warte. Der von Ihnen bereitgestellte Link von Google VR verwendet keine zylindrischen Projektionen, sondern sphärische. Ich werde meine Antwort ergänzen.
Rafael

Vielen Dank. Kurze Frage, nicht sicher, wie man die 3.1416: 1 bis 2: 1
Bob van Luijt

Probieren Sie einfach das endgültige Bild erneut aus. Wenn Ihre Leinwand 3141 x 1000 Pixel groß war, können Sie sie einfach auf 2000 x 1000 Pixel neu abtasten. Ernten Sie es nicht. Das Huhn sieht schlanker aus, wird aber bei der VR-Anwendung wieder fett.
Rafael

Aha, danke, fast da. Was wären die richtigen Einstellungen im Bild -> Einstellungen für die Bildgröße in Photoshop?
Bob van Luijt

Eine zusätzliche Anmerkung. Die Wolken, je größer Sie oben und unten sind, müssen umgeformt werden, um die Größe des Originalbilds zu erhalten.
Rafael

3

Geben Sie hier die Bildbeschreibung ein

Ihr Bild enthält nur wenige Informationen und ist zu klein. Haben Sie auch keine gleichwinklige Geometrie. Aber Sie können es in Blender tun, es ist kostenlos. Rendern Sie es einfach in "Panorama"> "gleichwinklig"> "Rendern". Um HDRI-Bilder in 360 anzuzeigen, können Sie diese Site verwenden: http://panoramaviewer.1bestlink.net/


2

Original Bild:

Geben Sie hier die Bildbeschreibung ein

Erhöhen Sie die Leinwandgröße und verwenden Sie eine inhaltsbewusste Füllung, um dem Bild mehr Himmel und Boden zu verleihen. Ich habe Photoshop verwendet:

Geben Sie hier die Bildbeschreibung ein

Im nächsten Schritt verwenden Sie den Filter Polarkoordinaten. Hier ist ein Bild, das zeigt, wie Polarkoordinaten genau funktionieren:

Geben Sie hier die Bildbeschreibung ein

Wie Sie sehen, möchten wir von der unteren (rechteckig) in die obere Perspektive (polar) konvertieren. Gehen Sie dazu zu Filter -> Verzerren -> Polarkoordinaten -> Rechteckig zu Polar:

Geben Sie hier die Bildbeschreibung ein

Verwenden Sie inhaltsbewusstes Füll-, Reparatur- oder Stempelwerkzeug, um die Bereiche in der Mitte und um die Kanten herum zu fixieren:

Geben Sie hier die Bildbeschreibung ein

Verwenden Sie erneut Polarkoordinaten, diesmal jedoch Polar bis Rechteck. Sie können dieses Bild auf eine 360 ​​° -Kugel projizieren:

Geben Sie hier die Bildbeschreibung ein

Angenommen, Sie haben ein Bild eines Nachthimmels. Sie können wieder Polarkoordinaten verwenden. Da die Bildmitte nach gleichwinkliger Verzerrung nach oben zeigt, verwenden Sie die Polarkoordinaten Polar bis Rechteck nur einmal:

Geben Sie hier die Bildbeschreibung ein

In einer 3D-Software (ich habe das kostenlose Clara.io verwendet) sieht die Textur auf einer Kugel folgendermaßen aus:

Geben Sie hier die Bildbeschreibung ein

Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.