viernes, 17 de julio de 2026

Mejorando fotografías ultraangulares con una reproyección

En fotografía los distintos tipos de proyecciones suelen asociarse al montaje de panorámicas, donde resulta imperativo escoger un tipo de proyección adecuado para poder "coser" toda la información procedente de múltiples capturas. Estas frecuentemente abarcarán amplios ángulos de visión, lo que supone todo un reto de visualización.

Sin embargo no hay ningún motivo por el que no tenga sentido hacer cambios de proyección también cuando tenemos una sola imagen, en particular si la captura se realizón con un objetivo ultraangular, abarcando un amplio ángulo de visión.

La razón de que podamos salir ganando con un cambio de proyección lo tenemos en las propias limitaciones del sistema de proyección lineal (modelo pinhole o cámara oscura) bajo el que funcionan el 99,99% de cámaras y objetivos del mundo. Aunque por el título pueda no parecerlo, el artículo 'Proyección rectilínea de escenas 3D sobre el plano con R' es probablemente mi artículo más puramente fotográfico, y en él se explica la realidad geométrica de la forma en que nuestras cámaras forman imágenes sobre el plano. Es un tema por el que la mayoría de fotógrafos pasan de puntillas pero que supone la base del presente ejercicio.

De forma resumida, la proyección estándar rectilínea bajo la que funcionan la inmensa mayoría de cámaras de fotos y objetivos, tiene la maravillosa cualidad de preservar como rectas todas las líneas que lo sean en la escena del mundo real, pero no se lleva nada bien en cuanto pretendemos abarcar ángulos de visión amplios. Los objetos de la escena más separados angularmente del eje óptico, es decir los que caen en los bordes del encuadre, van a sufrir una inevitable distorsión que los va a "estirar" y deformar pudiéndolos llegar a hacer casi irreconocibles. Aplicado a disciplinas como el paisaje, esta distorsión se disimula mejor por falta de referencias, pero estará allí igualmente.

Ayudándome de Gemini Pro, he construido una pequeña biblioteca en R (con el código principal en C++ para que la ejecución sea rápida) para pasar cualquier imagen desde la proyección lineal de cámara a las 7 proyecciones que se muestran en la siguiente tabla, acompañadas de sus cualidades principales:


A la vista de la tabla puede deducirse que no existe la proyección perfecta. La que aprieta en una característica flaquea en otra en términos de si se preservan como rectas las líneas rectas verticales (imprescindible en arquitectura y también en paisaje), las líneas radiales (importante si hay fugas), si son capaces de restaurar la forma circular de una esfera (importante si hay objetos de tipo esférico, donde calificaría una cabeza humana),... Todas las proyecciones son representaciones diferentes de la misma escena tridimensional, y cada una preserva unas propiedades geométricas a costa de sacrificar otras.

Como culturilla general, una proyección conforme es una transformación que preserva localmente los ángulos (medidos sobre la esfera 3D). Equivalente a ello, en cada punto conserva la forma de figuras infinitesimales, aunque no necesariamente su escala.

~~~

Vamos a aplicar a una imagen de paisaje la anterior batería de 7 reproyecciones (recordemos que estamos reproyectando desde una imagen tal y como sale de la cámara a nuevos esquemas geométricos). Añadimos una cuadrícula regular y dos líneas diagonales en la imagen de partida para ayudar a entender, solo con ver la forma en que esta retícula se transforma en destino, el tipo de transformación que estamos realizando. Así visualizaremos dónde comprime más, si se mantienen las verticales y/o las radiales,... (hacer clic para ver en alta resolución):


Fotografiada con un Laowa 12mm, en el árbol de la izquierda percibimos claramente el típico estiramiento fruto de la perspectiva. El árbol aparece mucho más ancho de lo que es en realidad, y sus hojas parecen querer "escapar" del encuadre por la diagonal. La compresión en los laterales de varias de las proyecciones viene a mitigar esto mostrando un árbol más acorde a su tamaño y proporciones reales.

Las proyecciones que curvan las líneas rectas, aunque en paisaje se llevan mucho mejor que en arquitectura o interiorismo, no son demasiado adecuadas porque deformarán los pocos elementos verticales que tenga la escena.

Ahora aplicamos igualmente las 7 proyecciones a una escena consistente en una serie de esferas colocadas deliberadamente lejos del centro (hacer clic para ver en alta resolución):


Aquí el objetivo es restaurar la forma de las esferas que han quedado convertidas en elipses alargadas por efecto de la perspectiva. La proyección estereográfica, proporcionado un dato preciso de la distancia focal usada, nos dará siempre esos círculos perfectos.

Sin salir de la proyección estereográfica, terminamos haciendo un ejercicio geométrico inverso. Generamos una imagen sintética con círculos equiespaciados que vamos a asumir se encuentra definida precisamente con una proyección esterográfica:


Qué debería pasar si ahora convertimos desde esta proyección estereográfica a la proyección lineal de cámara? todos los círculos habrían de reproyectarse como elipses perfectas con el eje mayor contenido en la dirección radial. Dicho y hecho (hacer clic para ver las elipses con mayor resolución):


Para hacer una doble comprobación, con la función directa que pasa de lineal (pinhole) a estereográfica debemos poder restaurar los círculos iniciales en sus precisas posiciones originales:

~~~

Vamos a ver tres casos de uso real en los que le encuentro sentido al aprovechamiento de las proyecciones estudiadas, con idea de aplicárselas a una captura ultraangular:

  • Proyección cilíndrica en paisaje para eliminar la distorsión en los extremos laterales de una toma ultraangular, haciendo que los accidentes geográficos se presenten en escala y proporciones más próximos a lo que vio allí el fotógrafo. Aplicada a la siguiente fotografía de Javier Camacho Gimeno, obtenida de una sola toma de focal 18mm equivalente en FF, vemos como el monte Cervino en el centro de la imagen gana protagonismo a la vez que eliminamos el efecto de "estiramiento" en los laterales, restaurando además formas más realistas de los picos que aparecen próximos a los extremos (hacer clic para ver con mayor resolución):

  • Proyección estereográfica para restaurar la forma circular de elementos esféricos de la escena original, y que por la proyección de cámara se plasmaron como elipses de difícil interpretación. Un resultado muy similar, aunque matemáticamente no tan exacto, puede obtenerse con la proyección Mercator, que cometerá más error cuanto mayores sean las esferas (hacer clic para ver en alta resolución):



  • Proyección Panini para contrarrestar la distorsión debida al gran ángulo de visión en un objetivo ultraangular. Esta corrección solo es aplicable cuando la escena tiene un punto de fuga central sobre el que convergen todas las líneas de fuga (hacer clic para ver en alta resolución):

~~~

Repositorio con el código R: GitHub.

No hay comentarios:

Publicar un comentario

Por claridad del blog, por favor trata de utilizar una sintaxis lo más correcta posible y no abusar del uso de emoticonos, mayúsculas y similares.