Eu tenho uma imagem panorâmica regular. Como convertê-lo em uma imagem equiretangular (normal → equiretangular)?
A maioria dos resultados encontrados no Google é uma conversão na direção oposta (equiretangular → normal).
Esta é a imagem que eu quero converter ( link HR )
3d
image-format
file-conversion
Bob van Luijt
fonte
fonte
Respostas:
A imagem equiretangular apresenta uma esfera, é distorcida para que os meridianos e paralelos na esfera sejam mostrados como linhas verticais e horizontais retas. Um exemplo da Wikipedia:
À esquerda, há um mapa esférico e à direita, o mapa plano equivalente, a projeção equiretangular da esfera para um retângulo.
Não há alongamento no equador, mas a imagem é esticada horizontalmente em outro lugar. Quanto mais alongado, mais distante o ponto está do equador. As arestas superior e inferior contêm, na verdade, apenas pontos únicos - os pólos.
O retângulo tem proporções W / H = 2: 1. Isso reflete o fato de que a distância entre os pólos ao longo da esfera é exatamente metade da ida e volta completa ao longo do equador.
Você queria converter sua imagem para equiretangular. Aparentemente, as proporções são 2: 1, portanto, já é equiretangular se a esfera correspondente for esta:
Metade da imagem está escondida atrás da esfera, mas aí está. Como você vê, as bordas superior e inferior da sua imagem são comprimidas em pontos, os pólos.
Eu acho que você vê isso como uma peça inútil de sofismas de matemática, você esperava outra coisa. Eu acho que você quer
1) uma imagem equiretangular que apresenta uma esfera com sua imagem como parte da superfície, sem a necessidade de cobrir toda a esfera
2) quando alguém assiste a ela no meio da esfera, ele pode ver sua imagem na esfera sem distorção e em tamanho tão grande que a imagem cobre uma parte substancial do campo de visão, digamos, um setor com 90 graus de largura e 45 graus altos.
Se você aceitar alguma distorção, basta aumentar o tamanho da tela para 400%
Em uma esfera vista de fora, é esta:
(desculpe pelos glosses, meu programa CAD gratuito não permite editar as luzes)
O Affinity Photo possui Camada> Projeção ao vivo> Equiretangular, que pode mostrar a visualização dentro da esfera como se a imagem fosse pintada na superfície interna da esfera e o observador no ponto médio. Isso mostra o seguinte:
Cerca e horizonte curvos obviamente não são desejados, mas o sol ainda é bastante redondo. Isso porque é muito menor e fica perto da linha do equador. O horizonte e a cerca são curvos, porque na verdade estão em círculos horizontais (= paralelos do mapa esférico), os observamos um pouco para baixo e os vemos como arcos de elipse.
Pode-se endireitar a área da imagem original com distorção compensadora, ou seja. distorcendo ou mais exatamente com as equações de distorção matemática (o Affinity P também as suporta).
O Affinity Photo permite edições de imagem no modo de projeção ao vivo. As edições são aplicadas à imagem retangular equivalente subjacente, mas se observa a projeção na esfera. Aqui está uma tentativa grosseira de deformação:
Também é possível colar a imagem original e mesclá-la à camada de fundo nua, que está em projeção ao vivo:
Mas isso não é uma correção geral. Assim que o observador vira a cabeça um pouco, ele vê uma nova cena distorcida (= uma carta plana vista de um lado)
Não há solução geral, porque você não possui uma cena 3D, apenas uma imagem plana em uma esfera 3D.
Minha opinião é que mapear o ambiente como uma única imagem em uma esfera e observá-lo do ponto médio pode ser realidade virtual plausível apenas se a cena mapeada estiver tão distante que não possa ter nenhuma perspectiva. Mesmo nesse caso, é preciso alguma distorção inteligente da ampla janela de visualização para tornar a distância aparente infinita, não = o raio da esfera. A distorção deve viver à medida que a direção da observação muda.
Esta resposta foi totalmente reescrita após a verificação deste caso muito posterior: Como posso pintar imagens equiretangulares (360 graus)?
fonte
Você não pode fazer isso na sua imagem como a possui.
1) Você deseja uma projeção cilíndrica em uma esfera. Primeiro, sua tela precisa estar em uma proporção exata. 3.1416: 1 (use qualquer tela de tamanho de pixel desejada, por exemplo, 3141x1000px)
2) E você (normalmente) precisa que o horizonte esteja no centro da tela.
Em uma projeção cilíndrica (de uma esfera), você tem uma deformação específica na projeção devido à dimensão projetada vertical versus a altura real desse segmento; portanto, é necessário compensar isso ao desenhar seu desenho animado em uma tela plana.
Uma maneira fácil de fazer isso é usar o filtro Spherize no Photoshop. (Na versão arcaica que tenho neste momento, este computador está em Filtro> Distorcer> Esferizar)
Mas você SOMENTE precisa distorcer isso no eixo vertical.
Além disso, você precisa definir qual parte de um panorama 360 você possui. Imagine outra galinha tirando uma foto. Qual seria o ângulo da lente usada?
Eu sinto que é uma lente grande angular, permite que você esteja usando um campo angular de 120 °. Isso significa que você precisa completar sua imagem com as coisas que você tem por trás do fotógrafo de galinhas.
O aplicativo Google VR que você deseja usar diz que precisa de uma projeção cilíndrica, mas pede uma proporção de 2: 1 na sua imagem. Uma projeção 2: 1 normalmente é esférica que possui uma deformação diferente, mas é mais difícil obter um vídeo, por exemplo.
Por motivos práticos, eles estão de fato solicitando projeções cilíndricas; portanto, basta redefinir sua amostra original de 3,1416: 1 a 2: 1 como etapa final.
Simplesmente resample a imagem final. Se sua tela tiver 3141 x 1000 px, basta redimensioná-la para 2000 x 1000 p. Não o corte. O frango parecerá mais fino, mas ficará mais gordo novamente na aplicação de VR.
Para sua tela inicial: na sua imagem específica, é difícil determinar o ângulo de visão, mas vamos ver 3 cenários.
(A) Seu campo de visão é de cerca de 120 ° para que você possa acomodar 3 fotos dos bichinhos fofos, pois sua imagem postada é 2048, a tela precisa ter 2048x3 = 6144px e agora dividir isso com pi = 1955px
6144x1955px
(B) Mas se você não quer que os animais sejam muito pequenos, vamos assumir que a foto cobre 180 ° = 2048x2 = 4096 / pi = 1303
4096x1303px
(C) Ou brinque com os números.
fonte
Sua imagem tem poucas informações e é muito pequena. Também não tem uma geometria equiretangular. Mas você pode fazer isso no Blender, é grátis. Basta renderizá-lo em "Panorama"> "equirectangular"> "Render. Para visualizar imagens HDRI no 360, você pode usar este site: http://panoramaviewer.1bestlink.net/
fonte
Imagem original:
Aumente o tamanho da tela e use o preenchimento com reconhecimento de conteúdo, para dar à imagem mais céu e solo. Eu usei o Photoshop:
Você usará o filtro de coordenadas polares na próxima etapa. Aqui está uma imagem que mostra como o Polar Coordinates funciona exatamente:
Como você vê, queremos converter da perspectiva inferior (retangular) para a perspectiva superior (polar). Para fazer isso, vá para Filtro -> Distorcer -> Coordenadas polares -> Retangular para polar:
Use preenchimento com reconhecimento de conteúdo, ferramenta de reparo ou ferramenta de carimbo para fixar as áreas no centro e nas bordas:
Use Coordenadas polares novamente, mas Polar para retangular neste momento. Você pode projetar esta imagem em uma esfera de 360 °:
Digamos que você tenha uma imagem de um céu noturno. Você pode usar as coordenadas polares novamente. Porém, como o centro da sua imagem se tornará o topo após a distorção equiretangular, você só usará as coordenadas polares polar para retangular uma vez:
Em um software 3D (usei o Clara.io gratuito), é assim que a textura fica em uma esfera:
fonte