Interesante y muy chulo, entiendo que ahora puedes rizar el rizo para los ojos de pez...
Aprovechando unas ecuaciones de un investigador de Microsoft que quería poder corregir fotos hechas sobre una pizarra tomadas en escorzo, para restaurarlas en sus proporciones reales, vi que el algoritmo de rebote tiene una cualidad bastante sorprendente e interesante en fotografía: además de suministrar las proporciones reales del objeto (que es lo que yo en principio buscaba para aplicarlas a temas de correcciones de perspectiva), proporciona la distancia focal con que se obtuvo la imagen. No estamos hablando en realidad de un concepto fotográfico sino geométrico (al fin y al cabo la distancia focal no es otra cosa que un parámetro de una proyección de imagen).
Con ese sencillo algoritmo he escrito una función que, a partir de cualquier imagen de una escena donde aparezca algún objeto rectangular, pero que presente fugas en sus dos ejes derivadas de la perspectiva, es posible obtener tanto las proporciones reales del objeto en el mundo real como la distancia focal con que se hizo la foto.
PRUEBAS CON IMÁGENES SINTÉTICAS
Unos ejemplos sintéticos (he usado Rhinoceros) con los que probar la precisión del algoritmo: "fotografías" de un cuerpo a 50mm y 24mm, usando los rectángulos de varias de sus caras para estimar tanto la focal como sus relaciones de aspecto:
Los cálculos salen muy precisos, el error aquí es debido a que las posiciones de las esquinas de los trapezoides usados (proyecciones de rectángulos del objeto real) se han medido redondeando manualmente a píxeles enteros. Si se hubieran usado las coordenadas exactas de la proyección el error debería ser 0.
APLICACIÓN A FOTOGRAFÍA REAL
Aplicamos el método a una escena interesante porque está llena de rectángulos fugando (los cuadros), pudiendo calcular la focal con que se generó la imagen a partir de cualquiera de ellos. Todos los cuadros arrojan distancias focales muy próximas, solo alejándose claramente el cuadro más pequeño. Esto tiene lógica pues cuando más pequeño es el rectángulo usado para hacer el cálculo se tiene más error. El objetivo que se usó en la toma fue un zoom 14-28mm en su extremo de 14mm, pero a la vista de los cálculos se debe perder algo de ángulo de visión tras hacer las correcciones de distorsión (algo bastante habitual), ya que todas las estimaciones salen por encima de los 14mm.
En breve escribiré un artículo sobre esto porque tiene bastante miga que rascar.
Salu2!
Última edición por Guillermo Luijk; 24/02/26 a las 17:18:31
Interesante y muy chulo, entiendo que ahora puedes rizar el rizo para los ojos de pez...
Clic, clic, clic...
Muy interesante.
Qué determina, la focal real o la focal efectiva (multiplicadores, reductores, recortes, APS-C, FF..)?
Buena pregunta, y la respuesta se relaciona con lo que decía que esto no es un cálculo fotográfico sino geométrico. La rutina calcula la distancia focal en píxeles, porque es su unidad de distancia. Es imposible que distinga una foto hecha con una cámara FF a 75mm de una APS a 50mm porque ambas producen la misma perspectiva y ángulo de visión. Soy yo quien convierto esa distancia focal en píxeles a mm en FF porque es lo que nos resulta familiar.
Una fantasía con fotos clásicas:
(creo que HCB usó un 50mm pero esto es lo que sale; también habría que ver si recortó o no)
El método pierde mucha precisión cuando las fugas no son exageradas, así que estos ejemplos son candidatos a tener un error grande. Pero no he podido evitar la tentación.
Salu2!
Última edición por Guillermo Luijk; 24/02/26 a las 21:03:26
Cuatro ejemplos más, se cumple que a más focal baja la precisión (las fugas se hacen más parecidas entre focales y por tanto el método es más sensible a cualquier desviación):
Ricoh GR IV con 28mm eq.:
Canon R5 II con un 85mm:
Sony A7R V con un 100mm:
Sony A7R V con un 200mm:
Salu2!
Última edición por Guillermo Luijk; Ayer a las 00:07:33
Un excelente candidato para hacer estos cálculos es un videojuego 3D. En ellos suelen confluir todas las facilidades para que este método clave la focal:
- Amplia FOV (focal angular)
- Cero distorsión geométrica
- Estructuras rectilíneas canónicas (los edificios del mundo real no son perfectos, los render sí)
- Fugas radicales en todas direcciones porque puedes mirar hacia arriba y hacia abajo
He tomado una pantalla del último videojuego al que jugué en mi vida, y a la vez el único al que he dedicado muchas horas: el Quake III Arena!
He calculado la distancia focal dos veces, con dos puertas que aparecen en lugares opuestos de la sala, de modo que un valor valide o invalide el otro. El resultado sale clavado, una focal de 19mm:
Salu2!
Una del señor Escher. Era esperable que saliera una focal consistente en cualquier rectángulo que se eligiese porque esta imagen es una perspectiva con 3 puntos de fuga, que si se hace bien solo puede ser una perspectiva correcta: 30-31mm de focal en formato casi cuadrado
Salu2!
Marcadores