Comment convertir une photo normale en une image équirectangulaire?


12

J'ai une image panoramique régulière. Comment puis-je le convertir en une image équirectangulaire (normale → équirectangulaire)?

La plupart des résultats que je trouve sur Google sont une conversion dans le sens opposé (équirectangulaire → normal).

Ceci est l'image que je veux convertir ( lien HR )

entrez la description de l'image ici


Commencez-vous avec une photo sphérique 360 ​​ou prenez-vous des photos manuellement?
AndrewH

J'ai créé une image 3D. Vous pouvez le comparer avec une photo ordinaire. Je voudrais le convertir en une image équirectangulaire.
Bob van Luijt

Je ne sais pas comment le faire à partir d'une scène 3D, mais pour assembler des photos, vous pouvez utiliser PTGui ou Hugin .
AndrewH

Doit-il être mathématiquement précis? Vous pourriez envelopper l'image autour d'un cylindre et enregistrer une image en perspective ortho?
Wolff

Non, je me bats vraiment, Hugin semble créer des images incorrectes.
Bob van Luijt

Réponses:


7

L'image équirectangulaire présente une sphère, elle est déformée de sorte que les méridiens et les parallèles sur la sphère sont représentés sous forme de lignes droites verticales et horizontales. Un exemple de Wikipedia:

entrez la description de l'image ici

À gauche, il y a une carte sphérique et à droite, la carte équivalente, la projection équirectangulaire de la sphère à un rectangle.

Il n'y a pas d'étirement sur l'équateur, mais l'image est étirée horizontalement ailleurs. Plus l'étirement est grand, plus le point est éloigné de l'équateur. Les bords supérieur et inférieur ne contiennent en fait que des points uniques - les pôles.

Le rectangle a des proportions W / H = 2: 1. Cela reflète le fait que la distance entre les pôles le long de la sphère est exactement la moitié de l'aller-retour complet le long de l'équateur.

Vous vouliez convertir votre image en équirectangulaire. Apparemment, les proportions sont de 2: 1, il est donc déjà équirectangulaire si la sphère correspondante est la suivante:

entrez la description de l'image ici

La moitié de l'image est cachée derrière la sphère, mais elle est là. Comme vous le voyez, les bords supérieur et inférieur de votre image sont pincés aux points, les pôles.

Je pense que vous voyez cela comme un morceau inutile de sophistique mathématique, vous vous attendiez à autre chose. Je suppose que tu veux

1) une image équirectangulaire qui présente une sphère avec votre image comme une partie de la surface, pas besoin de couvrir toute la sphère avec

2) quand on le regarde assis au milieu de la sphère, il peut voir votre image sur la sphère sans distorsion et en si grande taille que l'image couvre une partie substantielle du champ de vision, disons un secteur de 90 degrés de large et 45 degrés de haut.

Si vous acceptez une certaine distorsion, vous augmentez simplement la taille du canevas à 400%

entrez la description de l'image ici

Sur une sphère vue de l'extérieur c'est:

entrez la description de l'image ici

(désolé pour les gloss, mon logiciel de CAO gratuit ne permet pas d'éditer les lumières)

Affinity Photo a Layer> Live Projection> Equirectangular qui peut montrer la vue à l'intérieur de la sphère comme si l'image avait été peinte sur la surface intérieure de la sphère et que l'observateur se trouve au milieu. Cela montre ceci:

entrez la description de l'image ici

La clôture et l'horizon incurvés sont évidemment indésirables, mais le soleil est encore assez rond. C'est parce qu'il est beaucoup plus petit et qu'il est proche de la ligne de l'équateur. L'horizon et la clôture sont courbes, car ils sont en fait sur des cercles horizontaux (= parallèles de la carte sphérique), on les regarde un peu vers le bas et on les voit comme des arcs d'ellipse.

On peut redresser la zone d'image d'origine avec une distorsion de compensation, c'est-à-dire. en déformant ou plus exactement avec des équations de distorsion mathématiques (Affinity P les prend également en charge).

Affinity Photo permet des modifications d'image en mode de projection en direct. Les modifications sont appliquées à l'image équirectangulaire sous-jacente, mais on observe la projection sur la sphère. Voici une tentative de déformation grossière:

entrez la description de l'image ici

De plus, on peut coller l'image d'origine et la fusionner avec le calque d'arrière-plan nu, qui est sous projection en direct:

entrez la description de l'image ici

Mais ce n'est pas une solution générale. Dès que l'observateur tourne un peu la tête, il voit d'une nouvelle manière une scène déformée (= une carte plate vue de côté)

entrez la description de l'image ici

Il n'y a pas de solution générale, car vous n'avez pas de scène 3D, seulement une image plate sur une sphère 3D.

Mon opinion est que cartographier l'environnement en tant qu'image unique sur une sphère et le regarder depuis le milieu ne peut être une réalité virtuelle plausible que si la scène cartographiée est si éloignée qu'elle ne peut avoir aucune perspective. Même dans ce cas, il faut une distorsion intelligente de la fenêtre pour rendre la distance apparente infinie, pas = le rayon de la sphère. La distorsion devrait vivre à mesure que la direction d'observation change.

Cette réponse a été totalement réécrite après avoir vérifié ce cas beaucoup plus tard: Comment puis-je peindre des images équirectangulaires (360 degrés)?


11

Vous ne pouvez pas faire ça sur votre image telle que vous l'avez.

1) Vous voulez une projection cylindrique sur une sphère. Votre toile doit d'abord être dans une proportion exacte. 3.1416: 1 (utilisez n'importe quel canevas de taille pixel souhaité, par exemple 3141x1000px)

entrez la description de l'image ici

2) Et vous avez (normalement) besoin que l'horizon soit au centre de la toile.

entrez la description de l'image ici

Sur une projection cylindrique (à partir d'une sphère), vous avez une déformation spécifique sur la projection en raison de la dimension verticale projetée par rapport à la hauteur réelle de ce segment, vous devez donc compenser cela lorsque vous dessinez votre dessin animé sur une toile plate.

Pour ce faire, vous pouvez facilement utiliser le filtre Spherize dans Photoshop. (Sur la version arcaic que j'ai en ce moment sur cet ordinateur est sur Filter> Distort> Spherize)

Mais vous devez UNIQUEMENT déformer cela sur l'axe vertical.

entrez la description de l'image ici

Mais en plus de cela, vous devez définir quelle partie d'un panorama 360 vous avez. Imaginez un autre poulet prenant une photo. Quel serait l'angle de l'objectif utilisé?

Je pense que c'est un objectif grand angle, laisse la chose que vous prenez comme un champ angulaire de 120 °. Cela signifie que vous devez compléter votre image avec ce que vous avez derrière le photographe de poulet.

entrez la description de l'image ici


L'application Google VR que vous souhaitez utiliser indique qu'il a besoin d'une projection cylindrique, mais demande une proportion de 2: 1 sur votre image. Une projection 2: 1 est normalement une projection sphérique qui a une déformation différente, mais elle est plus difficile à réaliser dans une vidéo par exemple.

Pour des raisons pratiques, ils demandent en fait des projections cylindriques, il vous suffit donc de rééchantillonner votre original 3.1416: 1 à 2: 1 comme étape finale.

entrez la description de l'image ici

Rééchantillonnez simplement l'image finale. Si votre toile mesurait 3141 x 1000 pixels, il suffit de la rééchantillonner en 2000 x 1000 pixels. Ne le recadrez pas. Le poulet paraîtra plus mince mais redeviendra gras sur l'application VR.


Pour votre toile initiale: Sur votre image spécifique, il est difficile de dire l'angle de vue, mais voyons 3 scénarios.

(A) Votre champ de vision est d'environ 120 ° afin que vous puissiez accueillir 3 photos des animaux mignons car votre image publiée est 2048, la toile doit être 2048x3 = 6144px et divisez-la maintenant avec pi = 1955px

6144x1955px

(B) Mais si vous ne voulez pas que les animaux soient trop petits, supposons que la photo couvre 180 ° = 2048x2 = 4096 / pi = 1303

4096x1303px

(C) Ou jouez avec les chiffres.

entrez la description de l'image ici


Ooooohhhh .... Attendez. Le lien de google VR que vous fournissez n'utilise pas de projections cylindriques, ils utilisent des projections sphériques. Je vais compléter ma réponse.
Rafael

Merci. Question rapide,
je

Rééchantillonnez simplement l'image finale. Si votre toile mesurait 3141x1000 px, il suffit de la rééchantillonner en 2000x1000px. Ne le recadrez pas. Le poulet paraîtra plus mince mais redeviendra gras sur l'application VR.
Rafael

Aha, merci, presque là. Quels seraient les paramètres corrects dans l'image -> paramètres de taille d'image dans Photoshop?
Bob van Luijt

Une note supplémentaire. Les nuages, le coser que vous êtes en haut et en bas, doivent être remodelés pour conserver la taille de l'image d'origine.
Rafael

3

entrez la description de l'image ici

Votre image contient vraiment peu d'informations et est trop petite. N'ont pas non plus de géométrie équirectangulaire. Mais vous pouvez le faire dans Blender, c'est gratuit. Rendez-le simplement dans "Panorama"> "équirectangulaire"> "Rendu. Pour voir des images HDRI en 360, vous pouvez utiliser ce site: http://panoramaviewer.1bestlink.net/


2

Image originale:

entrez la description de l'image ici

Augmentez la taille du canevas et utilisez le remplissage sensible au contenu pour donner à l'image plus de ciel et de sol. J'ai utilisé Photoshop:

entrez la description de l'image ici

Vous utiliserez le filtre Coordonnées polaires à l'étape suivante. Voici une image qui montre comment fonctionne exactement les coordonnées polaires:

entrez la description de l'image ici

Comme vous le voyez, nous voulons convertir la perspective inférieure (rectangulaire) en perspective supérieure (polaire). Pour ce faire, accédez à Filtre -> Distorsion -> Coordonnées polaires -> Rectangulaire à polaire:

entrez la description de l'image ici

Utilisez l'outil de remplissage, de réparation ou d'estampage sensible au contenu pour fixer les zones au centre et autour des bords:

entrez la description de l'image ici

Utilisez à nouveau les coordonnées polaires, mais polaires à rectangulaires cette fois. Vous pouvez projeter cette image sur une sphère à 360 °:

entrez la description de l'image ici

Disons que vous avez une image d'un ciel nocturne. Vous pouvez à nouveau utiliser les coordonnées polaires. Mais comme le centre de votre image deviendra le haut après une distorsion équirectangulaire, vous n'utiliserez les coordonnées polaires polaire à rectangulaire qu'une fois:

entrez la description de l'image ici

Dans un logiciel 3D (j'ai utilisé le Clara.io gratuit), voici à quoi ressemble la texture sur une sphère:

entrez la description de l'image ici

En utilisant notre site, vous reconnaissez avoir lu et compris notre politique liée aux cookies et notre politique de confidentialité.
Licensed under cc by-sa 3.0 with attribution required.