viernes, 7 de agosto de 2026

Ejercicio de geometría proyectiva: distancia focal, proyección estereográfica y rotación de cámara

En este artículo vamos a hacer un ejercicio completo de geometría proyectiva aprovechando varios desarrollos realizados recientemente: cálculo de la distancia focal con que fue realizada una fotografía basándonos solo en geometrías encontradas en la misma, reproyección estereográfica de la imagen capturada por la cámara, y finalmente cambio del punto de vista de cámara con una matriz de rotación.

El interés del ejercicio no es tanto lograr determinado resultado sino enlazar distintos procesos donde la salida de cada uno sea la entrada requerida para el siguiente paso. Para poder practicar con los conceptos y transformaciones que queremos he buscado una imagen que cumpla las siguientes condiciones:

  • Debe disponer de al menos dos pares de elementos rectilíneos paralelos dos a dos en el mundo real, y perpendiculares entre sí, dando lugar a un trapezoide irregular con fugas evidentes en la fotografía.
  • Debe mostrar esferas con claras deformaciones elípticas fruto de la proyección de cámara.
  • Debe presentar alguna superficie rectangular plana en el mundo real, deformada por la perspectiva, de la que podamos aspirar a obtener su relación de aspecto real.

Estos requisitos aparentemente tan caprichosos se entenderán leyendo los tres enlaces del inicio del texto respectivamente, y que volveremos a referenciar allá donde se apliquen en cada etapa del ejercicio. El Atomium de Bruselas me ha parecido el motivo ideal para cumplir todas las condiciones buscadas, así que he tomado prestada esta fotografía (hacer clic para ver en alta resolución):

El primer paso consistirá en encontrar un trapezoide irregular lo mayor posible formado por elementos rectilíneos paralelos dos a dos, y los tubos que unen las esferas del Atomium son perfectos para esto. Si nos fijamos en la siguiente imagen, uno de los lados escogidos no es coplanario con los otros tres en el espacio 3D, pero esto no es ningún problema ya que el único requisito es que sea paralelo a su gemelo correspondiente (hacer clic para ver en alta resolución):

Aplicando el algoritmo visto en 'Calculando la distancia focal con que se hizo una fotografía (I). Algoritmo', estimamos la distancia focal con que se tomó la fotografía en 12,28mm equivalentes en FF.

Con una de las funciones que construimos en 'Mejorando fotografías ultraangulares con una reproyección' obtenemos una reproyección estereográfica de la imagen usando la distancia focal calculada. Esta proyección es matemáticamente la única que va a convertir las elipses en que se plasmaban las esferas del Atomium, en circunferencias perfectas (hacer clic para ver en alta resolución):

Lo interesante de la nueva vista es que los centros geométricos de estas circunferencias, inmediatos de obtener, representan los puntos de la imagen sobre los que se proyectarían los centros geométricos de las esferas del Atomium en el mundo real.

Ya solo tenemos que hacer una reproyección de vuelta a la proyección rectilínea original de cámara, para tener la localización sobre la imagen inicial de estos centros geométricos (hacer clic para ver en alta resolución):

Hemos tenido que dar este rodeo porque como puede comprobarse los centros obtenidos no coinciden con los centros de las elipses, sino que por efecto de la perspectiva se encuentran más próximos al centro de la imagen:

Localizados estos 4 puntos sobre la imagen, definirán lo que en el mundo real sería un cuadrado con vértices localizados en el centro de las 4 esferas correspondientes y lados coincidentes con los ejes de los 4 cilindros que conectan las esferas. Para quien no haya visitado el Atomium, estos cilindros o tubos contienen las escaleras mecánicas que permiten desplazarse entre las distintas exposiciones que albergan las esferas.

Como finalización del ejercicio vamos a aplicar el desarrollo que hicimos en 'Cambio del punto de vista de cámara mediante homografías con R' para apuntar la cámara de modo que sepamos la forma en que habría quedado plasmado el Atomium si, sin mover la cámara del lugar en que estaba, la fotografía se hubiera hecho perpendicularmente al plano formado por las 4 esferas de referencia. Matriz que modela la transformación y resultado de la misma (hacer clic para ver en alta resolución):

    > R_frontal
               [,1]        [,2]      [,3]
    [1,]  0.8005112 -0.26816024 0.5359776
    [2,]  0.2307744  0.96327545 0.1372719
    [3,] -0.5531049  0.01380219 0.8329973

Ha llegado el momento de la verdad donde podemos validar, o no, todo el ejercicio. Y es que para darlo por bueno el único resultado posible es un cuadrado perfecto formado uniendo los centros de las 4 esferas implicadas.

Vemos que ha sido así con escaso error, asumible dado que la imagen de partida no era perfecta (distorsiones ópticas) y que hicimos un buen número de mediciones manuales de escuadra y cartabón "pixelianos". Doy mi palabra de que he hecho todas las mediciones de la forma más precisa que he podido, pero en ningún monento he iterado ni modificado valores para mejorar el resultado.

Adicionalmente al cuadrado rectificado, podemos ver que las 4 esferas del fondo, coplanarias en un plano paralelo en el mundo real al cuadrado rectificado, como no podía ser de otro modo aparecen formando otro cuadrado de lados paralelos al de referencia.

Resumimos los pasos realizados en el ejercicio, con la salida obtenida en cada uno de ellos y usada como dato de entrada del siguiente cálculo:

~~~

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.