¿Cómo convertir una foto normal en una imagen equirectangular?


12

Tengo una imagen panorámica regular. ¿Cómo lo convierto en una imagen equirectangular (normal → equirectangular)?

La mayoría de los resultados que encuentro en Google son una conversión en la dirección opuesta (equirectangular → normal).

Esta es la imagen que quiero convertir ( enlace HR )

ingrese la descripción de la imagen aquí


¿Estás comenzando con una foto esférica 360 o estás tomando fotos manualmente?
AndrewH

He creado una imagen en 3D. Podrías compararlo con una foto normal. Me gustaría convertirlo en una imagen equirectangular.
Bob van Luijt

No estoy seguro de cómo hacerlo desde una escena 3D, pero para unir fotos puede usar PTGui o Hugin .
AndrewH

¿Tiene que ser matemáticamente preciso? ¿Podría envolver la imagen alrededor de un cilindro y guardar una imagen en perspectiva orto?
Wolff

No, no, realmente estoy luchando, Hugin parece crear imágenes incorrectas.
Bob van Luijt

Respuestas:


7

La imagen equirectangular presenta una esfera, está distorsionada de modo que los meridianos y paralelos en la esfera se muestran como líneas rectas verticales y horizontales. Un ejemplo de Wikipedia:

ingrese la descripción de la imagen aquí

A la izquierda hay un mapa esférico y a la derecha está el mapa plano equivalente, la proyección equirectangular de la esfera a un rectángulo.

No hay estiramiento en el ecuador, pero la imagen se estira horizontalmente en otro lugar. Cuanto más se estira, más se aleja el punto del ecuador. Los bordes superior e inferior contienen en realidad solo puntos únicos: los polos.

El rectángulo tiene proporciones W / H = 2: 1. Eso refleja el hecho de que la distancia entre los polos a lo largo de la esfera es exactamente la mitad del recorrido completo a lo largo del ecuador.

Querías convertir tu imagen a equirectangular. Al parecer, las proporciones son 2: 1, por lo que ya es equirrectangular si la esfera correspondiente es esta:

ingrese la descripción de la imagen aquí

La mitad de la imagen está oculta detrás de la esfera, pero ahí está. Como puede ver, los bordes superior e inferior de su imagen se pellizcan en puntos, los polos.

Creo que ves esto como una pieza inútil de matemática sofisticada, esperabas algo más. Supongo que quieres

1) una imagen equirectangular que presenta una esfera con su imagen como parte de la superficie, no es necesario cubrirla con una esfera completa

2) cuando uno lo ve sentado en el medio de la esfera, puede ver su imagen en la esfera sin distorsión y en un tamaño tan grande que la imagen cubre una parte sustancial del campo de visión, digamos un sector de 90 grados de ancho y 45 grados de altura.

Si acepta alguna distorsión, simplemente aumenta el tamaño del lienzo al 400%

ingrese la descripción de la imagen aquí

En una esfera vista desde afuera es esto:

ingrese la descripción de la imagen aquí

(perdón por las glosas, mi programa CAD gratuito no permite editar las luces)

Affinity Photo tiene Layer> Live Projection> Equirectangular que puede mostrar la vista dentro de la esfera como si la imagen estuviera pintada en la superficie interior de la esfera y el observador está en el punto medio. Muestra esto:

ingrese la descripción de la imagen aquí

La cerca curva y el horizonte obviamente no son deseados, pero el sol todavía es bastante redondo. Eso es porque es mucho más pequeño y está cerca de la línea del ecuador. El horizonte y la cerca están curvados, porque en realidad están en círculos horizontales (= paralelos del mapa esférico), uno los mira un poco hacia abajo y los ve como arcos de elipse.

Se puede enderezar el área de la imagen original con distorsión compensatoria, es decir. deformando o más exactamente con ecuaciones de distorsión matemática (Affinity P también las admite).

Affinity Photo permite la edición de imágenes en modo de proyección en vivo. Las ediciones se aplican a la imagen equirectangular subyacente, pero se observa la proyección en la esfera. Aquí hay un intento de deformación grosera:

ingrese la descripción de la imagen aquí

Además, se puede pegar la imagen original y fusionarla en una capa de fondo desnudo, que se encuentra en proyección en vivo:

ingrese la descripción de la imagen aquí

Pero esto no es una solución general. Tan pronto como el observador gira un poco la cabeza, ve una nueva forma de escena distorsionada (= una tarjeta plana vista desde un lado)

ingrese la descripción de la imagen aquí

No hay una solución general, porque no tienes una escena 3D, solo una imagen plana en una esfera 3D.

Mi opinión es que mapear el entorno como una sola imagen en una esfera y verlo desde el punto medio puede ser una realidad virtual plausible solo si la escena mapeada está tan lejos que no puede tener ninguna perspectiva. Incluso en ese caso, se necesita una distorsión amplia de la vista inteligente para hacer que la distancia aparente sea infinita, no = el radio de la esfera. La distorsión debería vivir a medida que cambia la dirección de observación.

Esta respuesta fue totalmente reescrita después de verificar este caso mucho más tarde: ¿Cómo puedo pintar imágenes equirectangulares (360 grados)?


11

No puede hacer eso en su imagen como la tiene.

1) Desea una proyección cilíndrica en una esfera. Primero, su lienzo debe estar en una proporción exacta. 3.1416: 1 (Use cualquier lienzo de tamaño de píxel que desee, por ejemplo 3141x1000px)

ingrese la descripción de la imagen aquí

2) Y usted (normalmente) necesita que el horizonte esté en el centro del lienzo.

ingrese la descripción de la imagen aquí

En una proyección cilíndrica (desde una esfera) tiene una deformación específica en la proyección debido a la dimensión proyectada vertical frente a la altura real de ese segmento, por lo que debe compensar eso cuando dibuja su dibujo animado en un lienzo plano.

Una manera fácil de hacer esto es usar el filtro Spherize en Photoshop. (En la versión arcaica que tengo ahora en esta computadora está en Filtro> Distorsionar> Esferizar)

Pero SOLO necesita distorsionar eso en el eje vertical.

ingrese la descripción de la imagen aquí

Pero además de eso, debes definir qué parte de un panorama 360 tienes. Imagina a otro pollo tomando una foto. ¿Cuál sería el ángulo de la lente utilizada?

Siento que es una lente gran angular, permite que tome algo como un campo angular de 120 °. Esto significa que debe completar su imagen con las cosas que tiene detrás del fotógrafo de pollo.

ingrese la descripción de la imagen aquí


La aplicación Google VR que desea usar dice que necesita una proyección cilíndrica, pero solicita una proporción de 2: 1 en su imagen. Una proyección 2: 1 normalmente es esférica y tiene una deformación diferente, pero es más difícil de lograr en un video, por ejemplo.

Por razones prácticas, de hecho están pidiendo proyecciones cilíndricas, por lo que simplemente debe volver a muestrear su 3.1416: 1 a 2: 1 original como paso final.

ingrese la descripción de la imagen aquí

Simplemente remuestree la imagen final. Si su lienzo tenía 3141x1000 px, simplemente vuelva a muestrearlo a 2000x1000px. No lo recortes. El pollo se verá más delgado pero volverá a engordar en la aplicación VR.


Para su lienzo inicial: en su imagen específica es difícil determinar el ángulo de visión, pero veamos 3 escenarios.

(A) Su campo de visión es de aproximadamente 120 °, por lo que puede acomodar 3 fotos de las lindas mascotas, ya que su imagen publicada es 2048, el lienzo debe ser 2048x3 = 6144px y ahora divida eso con pi = 1955px

6144x1955px

(B) Pero si no desea que las mascotas sean demasiado pequeñas, supongamos que la foto cubre 180 ° = 2048x2 = 4096 / pi = 1303

4096x1303px

(C) O juega con los números.

ingrese la descripción de la imagen aquí


Ooooohhhh .... Espera. El enlace de Google VR que está proporcionando no utiliza proyecciones cilíndricas, sino esféricas. Complementaré mi respuesta.
Rafael

Gracias. Pregunta rápida, no estoy seguro de cómo obtener el 3.1416: 1 a 2: 1
Bob van Luijt

Simplemente remuestree la imagen final. Si su lienzo tenía 3141x1000 px, simplemente vuelva a muestrearlo a 2000x1000px. No lo recortes. El pollo se verá más delgado pero volverá a engordar en la aplicación VR.
Rafael

Ajá, gracias, casi allí. ¿Cuál sería la configuración correcta en la imagen -> configuración de tamaño de imagen en Photoshop?
Bob van Luijt

Una nota adicional. Las nubes, el coser que está en la parte superior e inferior, deben ser reformadas para mantener el tamaño aparente de la imagen original.
Rafael

3

ingrese la descripción de la imagen aquí

Su imagen tiene muy poca información y es demasiado pequeña. Tampoco tiene una geometría equirectangular. Pero puedes hacerlo en Blender, es gratis. Simplemente renderízalo en "Panorama"> "equirectangular"> "Renderizar. Para ver imágenes HDRI en 360 puedes usar este sitio: http://panoramaviewer.1bestlink.net/


2

Imagen original:

ingrese la descripción de la imagen aquí

Aumente el tamaño del lienzo y use relleno con reconocimiento de contenido, para darle a la imagen más cielo y tierra. Utilicé Photoshop:

ingrese la descripción de la imagen aquí

Utilizará el filtro Coordenadas polares en el siguiente paso. Aquí hay una imagen que muestra cómo funciona Polar Coordinates exactamente:

ingrese la descripción de la imagen aquí

Como puede ver, queremos convertir de la perspectiva inferior (Rectangular) a la superior (Polar). Para hacer esto, vaya a Filtro -> Distorsionar -> Coordenadas polares -> Rectangular a polar:

ingrese la descripción de la imagen aquí

Use la herramienta de relleno, reparación o estampado para fijar las áreas en el centro y alrededor de los bordes:

ingrese la descripción de la imagen aquí

Use Polar Coordinates nuevamente, pero Polar to Rectangular esta vez. Puede proyectar esta imagen en una esfera de 360 ​​°:

ingrese la descripción de la imagen aquí

Digamos que tienes una imagen de un cielo nocturno. Puedes usar las coordenadas polares nuevamente. Pero dado que el centro de su imagen se convertirá en la parte superior después de la distorsión equirectangular, solo usa Coordenadas polares Polar a Rectangular una vez:

ingrese la descripción de la imagen aquí

En un software 3D (utilicé el Clara.io gratuito), así es como se ve la textura en una esfera:

ingrese la descripción de la imagen aquí

Al usar nuestro sitio, usted reconoce que ha leído y comprende nuestra Política de Cookies y Política de Privacidad.
Licensed under cc by-sa 3.0 with attribution required.