Suponiendo una lente estándar, una cámara estándar, es decir, la configuración se puede modelar como una cámara de agujero de alfiler . Esto no funciona con inclinación / desplazamiento, y tal vez no con lentes gran angular (si quieres saber sobre eso, podríamos resolverlo).
En la visión por computadora, a menudo se calculan las propiedades intrínsecas de las cámaras. Intrínsecos porque se refieren a la configuración de la cámara dentro de la cámara. Las propiedades extrínsecas son orientación y posición. Las propiedades intrínsecas son varias, entre ellas la ampliación. Mi solución es:
- Use una herramienta estándar de Computer Vision (CV) para calibrar la cámara y la lente en la configuración dada.
- Busque el tamaño de píxel para su cámara.
- Pídale a alguien más que convierta el aumento a la distancia focal. (Todavía no sé cómo funciona)
Calibración
La calibración en CV se realiza principalmente utilizando un patrón de tablero de ajedrez. Toma varias (~ 10) fotos de ese patrón desde varias posiciones y distancias. El algoritmo funciona entonces de la siguiente manera:
Imagine que conoce la posición de cada vértice en el tablero, encuentre un conjunto de parámetros para el modelo de cámara que mejor explique ver todos los puntos en el tablero en las imágenes.
En teoría, recomendaría OpenCV para esto, tiene un código de ejemplo para eso. Pero esto quizás no sea demasiado práctico (necesitará instalar OpenCV para esto y posiblemente cambiar un poco de código). Probablemente hay otras soluciones por ahí que hacen esto.
Calcular distancia focal
El resultado del paso de calibración es la matriz K (llamada matriz intrínseca). Asigna puntos de 3 espacios en el sistema de coordenadas de la cámara a puntos homogéneos de 2 espacios en el plano de la imagen.
$ \alpha 0 p_x
K = 0 \alpha p_y
0 0 1 $ (Multiple View Geometry, p. 157, 2nd Ed, 2003, Hartley & Zisserman)
Aquí solo nos preocupamos por \ alpha. p_x es aproximadamente la mitad del ancho del sensor en píxeles, de manera similar para p_y, se relaciona con el lugar donde el rayo principal se cruza con el plano de la imagen. Curiosamente, mi cámara de teléfono barata viola mucho más que una buena cámara réflex digital, o incluso una cámara web costosa, o una cámara Iphone 4.
\ alpha se relaciona con la distancia focal. \ alpha = f m. m es el número de píxeles por unidad de distancia en coordenadas de imagen. f es la distancia focal. Pero tenga en cuenta: esto está en el modelo de cámara estenopeica, por lo que la distancia entre el plano de la imagen y el agujero de la cámara. No estoy seguro de cómo encontrar la distancia focal que piensan los fotógrafos.
Alternativa
Alguien publicó un enlace sobre un enfoque diferente: http://www.bobatkins.com/photography/technical/measuring_focal_length.html
Abajo en "The Easy Way" en el artículo se propone un método diferente. Dadas dos estrellas, busca las posiciones de las estrellas y calcula el ángulo entre ellas. Luego, vea cómo la configuración de su cámara mide ese ángulo. Lea el enlace para un recorrido completo.
La desventaja de eso es que no funcionará con ninguna distancia focal, sino que solo se enfocará en el infinito. Por otro lado, mi enfoque no funcionará en el infinito. O trate los 500 m como infinito, compre un campo de maíz y corte un patrón de tablero de ajedrez, alquile un avión y tome fotos a partir de 500 m ...