¿Podemos medir el tamaño de un objeto utilizando datos EXIF ​​de una foto?

7

Mucha gente ha preguntado si podemos medir la distancia de un objeto en la foto. Pero me preguntaba si podemos medir el tamaño de un objeto en la foto. Por supuesto, suponiendo que sepamos todo, desde el tamaño del sensor hasta la altura del fotógrafo, etc.

Ejemplo: si tomo una foto de un pájaro en vuelo con solo el cielo como fondo, no habría objetos en el marco para dar una idea del tamaño del pájaro. Entonces, si pudiera calcular el tamaño a un nivel aproximado, sería realmente bueno saberlo.

Sudarshan Kadam
fuente

Respuestas:

6

Nunca sería más que una estimación, sin alguna referencia externa o distancia precisa al sujeto. Si ha estimado la distancia al sujeto, el FOV (/ longitud de la lente) y el tamaño del sensor no es demasiado difícil de calcular. La mayor incertidumbre sería la distancia al tema.

Para encontrar la resolución espacial (qué tan grande ( ancho o alto ) es un píxel en el sujeto) use:

(distancia * (tamaño del sensor / distancia focal)) / número de píxeles

Asegúrese de que el tamaño del sensor y la longitud focal estén usando la misma escala (ambos están en milímetros o pulgadas).

Luego puede contar el número de píxeles para el sujeto y multiplicarlo con la resolución espacial para un píxel.

Supongo un cambio lineal en el FOV en toda el área de la lente, que no es 100% precisa, pero sí bastante cercana para lentes normales y más largas.

Håkon K. Olafsen
fuente
44
Lástima que no tenemos las matemáticas de LaTeX trabajando aquí en la foto.
Håkon K. Olafsen
La ecuación está mal. ¿Por qué 2x? Estás calculando un área, por lo tanto, es al cuadrado. Debe ser la distancia ^ 2. Ver photo.stackexchange.com/a/12437/7292
Rado
Ah ... y la distancia focal también debe ser cuadrada
Rado
@ HåkonK.Olafsen: Observe: sensor_x / focal_length = picture_x / distance; sensor_y / focal_length = imagen_y / distancia (la distancia se calcula desde el punto focal). Considerando un píxel cuadrado, puede tomar cualquiera de estos y obtener: picture_x = distance * sensor_x / focal_length. Divídalo por el recuento horizontal de píxeles pixel_cnt_x que obtiene: distancia (sensor_x / focal_length) / pixel_cnt_x. Esta es la resolución espacial horizontal. El multiplicador "2x" no es correcto. Si tiene píxeles no cuadrados, tendrá que hacer los cálculos para la resolución horizontal y vertical.
TFuto
2

Mi cámara almacena la distancia de enfoque dentro de la imagen. Con esto sabes a qué distancia estaba tu pájaro. No será demasiado difícil calcular el tamaño del pájaro. Por ejemplo, puede tomar un objeto de tamaño conocido y tomar una foto con la misma lente desde la misma distancia y comparar el tamaño de este objeto en la imagen, con el tamaño del pájaro en la imagen.

René
fuente
1
¿Qué cámara es esta?
ysap
Es una Nikon D300
Rene
1
Pero, ¿la distancia focal no va solo a unos 3 my luego se convierte en infinito? Cuando uso el firmware Magic Lantern en mi Canon 550D, al menos lo hace.
Saaru Lindestøkke
1
Sería cauteloso de confiar en la distancia proporcionada por la cámara en cualquier cosa que se acerque remotamente a una distancia de enfoque de infinito, ya que el error de calibración más pequeño produciría errores que podrían ser varios órdenes de magnitud de la distancia proporcionada.
Michael C
@BartArondson Depende de la distancia focal de la lente. Una distancia focal más larga, como la que se usa con frecuencia cuando se observan aves, se enfocará mucho más antes de alcanzar ∞ que una lente gran angular. Es por eso que la última medida antes de ∞ para escalas de distancia en lentes WA generalmente es de alrededor de 1 metro, pero un teleobjetivo largo tendrá una marca de más de 50 metros o incluso 100 metros justo antes de la marca ∞.
Michael C
1

la respuesta general es: Sí y No, si agrega suficiente información además de la información EXIF, entonces se puede hacer, si no agrega suficiente información, entonces no, se convierte en una estimación, esa información es un cálculo extremadamente complejo de la perspectiva del objeto, pero también usando eso para volver al formato y el ángulo del marco de la foto, luego una medición exacta al ojo de la persona o al centro del marco (en elevación desde el suelo), luego conocimiento del terreno exacto elevaciones de superficie entre usted y el objeto. e incluso más cálculos más allá de eso.

Un paso importante que las otras respuestas están omitiendo, es que debe usar los datos en la foto para encontrar los ángulos de perspectiva de las líneas horizontales y verticales en el objeto del que es su foto (que en realidad se puede hacer, pero es extremadamente cálculo complejo), e incluso más complejo si, por ejemplo, en el ejemplo del OP de pocos objetos en la foto para trabajar, sin embargo, todavía se puede hacer, por ejemplo, en este caso, si el objeto no está "nivelado" en el suelo , entonces también se necesita la información de altura. En el ejemplo del OP, gran parte de esa información probablemente se omita o se desconozca, por lo que una respuesta puede ser No en ese caso de ejemplo. Pero para ser claros, la premisa de la pregunta es factible, si se conoce esa información adicional, y muchas veces se sabe, o se pueden hacer estimaciones de esa información.

Para resumir cómo (en general) se puede hacer esto: uno necesita una medición exacta de los cambios de elevación de la superficie del suelo entre usted y el objeto (hay más que solo esa oración).

entonces necesita una dimensión exacta desde el suelo hasta el centro de su ojo, o el centro del cuadro de imagen que está produciendo la cámara, este cuadro de imagen se puede calcular a partir de la información EXIF, pero la inclinación exacta del cuadro de imagen (cámara) en relación con el objeto debe calcularse desde esa perspectiva la información mencionada anteriormente. Y en el caso del ejemplo del OP, se necesita la altura del objeto fuera del suelo (o la proyección de ese objeto de regreso al suelo)

para mostrar que se puede hacer en una foto de ejemplo más general, a continuación se muestra una aplicación que hace todo esto: (excepto que usa estimaciones para el centro del ojo y realiza un cálculo complejo de los elementos de la superficie del suelo, que también se convierte en una "estimación" )

Por lo tanto, dado que utiliza estimaciones, debe conocer una dimensión del objeto para corregir el resultado final de la aplicación. pero eso es mucho mejor que tener que tomar una cinta métrica para todo en el objeto. Para ser claros, si la aplicación tuviera la dimensión exacta del ojo, o el centro del marco de la imagen, y un perfil de la superficie del suelo cambiara, entonces ni siquiera necesitaría esa "dimensión conocida". en ese caso, la respuesta a la pregunta de OP sería Sí.

el resultado final es una "elevación" corregida en perspectiva del objeto, e incluso con dimensiones automáticas. (observe que esta imagen ha sido corregida en perspectiva, por lo que todas las verticales son verticales, las horizontales son horizontales, y esto se hace automáticamente sin intervención del usuario) Esta imagen corregida en perspectiva no es necesaria para el cálculo del tamaño, pero la información de corrección de perspectiva es necesaria , que se utiliza para encontrar el ángulo (inclinación de guiñada, etc.) del marco de la imagen. (cómo estaba sentada la cámara en el momento de la foto) esto es lo que quiero enfatizar es necesario que los otros comentarios hayan estado omitiendo. En el caso de un "pájaro" como en el ejemplo de OP, uno se quedará alto y seco para estos datos necesarios, pero en muchas situaciones se puede resolver. Por ejemplo, este ejemplo a continuación.

ingrese la descripción de la imagen aquí

http://www.pictureenginecompany.com/MeasureEngine/MeasureEngine.html

Hokkuk
fuente
No creo que esto de ninguna manera responda la pregunta. Esta aplicación solo calcula longitudes relativas de cosas cuando se conoce una longitud. La pregunta se refiere a calcular el tamaño de algo, como un pájaro, a partir de información de tipo EXIF, como la distancia focal, la distancia focal, etc.
MikeW
Mencioné cómo calcular el tamaño de algo en los comentarios, y luego mencioné que esta aplicación hace esto, pero usa "estimaciones" para algunos de esos datos importantes para los que los comentarios dicen ... y por qué la aplicación necesita "una longitud conocida" para corregir debido a esas "estimaciones" utilizadas, si tiene información exacta en esas áreas clave como se menciona en los comentarios, entonces esta aplicación no necesitaría la "longitud conocida", y también hace varias de los pasos necesarios, incluidos los pasos que los otros comentarios habían omitido, como trabajar hacia atrás para encontrar la inclinación y el guiñada del marco de la imagen.
hokkuk