CALCULANDO LA FOCAL A PARTIR DE UNA FOTOGRAFÍA
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 en sus dos ejes fugas 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 ortoedro a 50mm y 24mm, usando los rectángulos que forman 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!
PD: gracias Chemax, no me acordaba del maravilloso comando rimg! he editado tu post para que quede más limpio
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 en sus dos ejes fugas 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 ortoedro a 50mm y 24mm, usando los rectángulos que forman 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!
PD: gracias Chemax, no me acordaba del maravilloso comando rimg! he editado tu post para que quede más limpio



