Del comentario de Matt Grum a mi pregunta anterior , aprendí que los fabricantes pueden "redondear" casualmente la distancia focal real de una lente a un número agradable que se imprime en la caja y se almacena en EXIF. Según su respuesta a la misma pregunta, parece que necesitaría saber la distancia focal real de una lente para probar qué apertura se usa.
También escuché que la mayoría de las lentes cambiarán la distancia focal cuando se enfocan muy cerca.
¿Cómo haría para probar qué distancia focal está usando realmente mi lente cuando se enfoca en una distancia determinada? EXIF obviamente no me ayudará aquí, porque los datos los pone el fabricante.
Existe un método matemático / de medición para calcular la distancia focal efectiva de una lente midiendo su ángulo de visión.
La fórmula para el ángulo de visión se da como
Para calcular la distancia focal efectiva (f), la fórmula se reduce a:
f = d / (2 * tan(α/2)) -> Ecuación 1
Donde d representa el tamaño del sensor en la dirección medida. d sería 24 en caso de que esté utilizando una cámara de fotograma completo.
Ahora tengamos la siguiente configuración para medir α
Tienes una cámara a una altura H del suelo ya una distancia X de la pared con una escala. Ahora tome una foto y debería poder leer la altura máxima que puede ver la lente (esto sería H + Y).
Ahora, conociendo X e Y, podemos calcular la mitad del ángulo de visión (es decir, α/2) usando este enlace (X sería el lado opuesto e Y el lado adyacente)
Ahora que ha averiguado α/2, utilícelo en la Ecuación 1 para calcular la distancia focal efectiva de la lente.
El valor solo es exacto según sus medidas.
Edición 1:
en referencia a la pregunta de mattdm: ¿las dimensiones del sensor indicadas por el fabricante son lo suficientemente cercanas?
Con referencia a los tamaños de los sensores de las cámaras en estos enlaces: aquí y aquí
Podemos suponer lógicamente que los fabricantes de cámaras o al menos Canon y Nikon redondean los tamaños de sus sensores en 1/10 de mm. es decir, existe la posibilidad de un error de +/- 0,05 mm en caso de que redondeen el tamaño del sensor.
Consideremos 3 tipos de lentes:
1. Lente gran angular (digamos 13 mm, ángulo de visión: 85,4)
2. Lente normal (50 mm, ángulo de visión 27,0)
3. Teleobjetivo (300 mm, ángulo de visión: 4,58)
El efecto de un cambio de 0,05 mm en el tamaño del sensor es:
cambio de lente gran angular = 0,05 / (2 * bronceado (85,4/2)) = 0,04613 mm aprox.
Lo que representa una diferencia de 0.35% (ie (0.04613/13) * 100)
cambio para lente normal= 0.05 / (2 * tan(27/2)) = 0.012 mm aprox.
Lo que representa una diferencia de 0.024% (ie (0.012/ 50) * 100 )
cambio por teleobjetivo= 0,05 / (2 * tan(4,58/2)) = 0,0019 mm aprox.
Lo que representa una diferencia de 0.0006% (ie (0.0019/ 300) * 100 )
Así podemos ver que con una lente gran angular de 13 mm y tomando un error de 0,05 mm en la medida de los fabricantes, el cambio en la distancia focal es solo del 0,35 %.
Espero que mis matemáticas sean correctas.
Edición 2:
en referencia a la pregunta de Imre sobre las medidas de X y H,
H debe medirse desde el suelo hasta el centro horizontal del sensor.
X es la distancia entre el sensor y la pared.
Suponiendo una lente estándar, una cámara estándar, es decir, la configuración se puede modelar como una cámara estenopeica . Esto no funciona con inclinación/desplazamiento, y tal vez no con lentes de gran angular (si quieres saber sobre eso, podríamos resolverlo).
En la visión artificial, 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 la orientación y la posición. Las propiedades intrínsecas son varias, entre ellas la magnificación. Mi solución es:
La calibración en CV se realiza principalmente utilizando un patrón de tablero de ajedrez. Tomas varias (~10) fotos de ese patrón desde varias posiciones y distancias. El algoritmo funciona entonces de la siguiente manera:
Suponga 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 (deberá instalar OpenCV para esto y posiblemente cambiar un poco de código). Probablemente hay otras soluciones por ahí que hacen esto.
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 punto de intersección del rayo principal con el plano de la imagen. Curiosamente, la cámara de mi teléfono barato viola eso mucho más que una buena DSLR, o incluso una cámara web costosa, o la cámara de un Iphone 4.
\alpha entonces 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 es en el modelo de cámara estenopeica, por lo que la distancia entre el plano de la imagen y el orificio estenopeico de la cámara. No estoy seguro de cómo encontrar la distancia focal en la que piensan los fotógrafos.
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, busque las posiciones de las estrellas y calcule 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 enfocará en el infinito. Por otro lado, mi enfoque no funcionará en el infinito. O trate 500 m como infinito, compre un campo de maíz y corte un patrón de tablero de ajedrez en él, alquile un avión y tome fotos desde 500 m hacia arriba...
Calcule el aumento M de la lente utilizando el objeto y el tamaño de la imagen. Con M y la distancia al objeto se puede calcular la distancia focal de la lente.
Miré el "método fácil" de Bob Atkins, pero te deja trabajar con algunos datos astronómicos.
Mi versión de su método proporciona toda la información astronómica y enlaces, con instrucciones paso a paso, y debería ser significativamente más fácil de implementar para los principiantes.
Puede colocar la lente en un descanso como un libro, creando así un banco óptico tosco. Bien iluminar un objetivo. Lo mejor es una regla. Ajuste la lente para que la imagen de la regla caiga sobre una pantalla de papel blanco.
Juega con las distancias hasta que la imagen de la regla sea de "tamaño real". Ya sabes, 1: 1 también llamado "aumento uno". Usando otra regla, mida la distancia entre las marcas en la imagen de la regla proyectada. Usar dos reglas idénticas ayuda. Ahora establezca el aumento necesario de 1:1.
Ahora mida la distancia entre el objetivo y la pantalla. Divide este valor por 4. Esta respuesta da la distancia focal de la lente.
itai
Imre
mattdm
whuber
matt grum
itai
mattdm
jyendo
itai
mataconos
Skaperen
Imre
jerrythec
alan marcus