¿Cómo calculo la distancia de un objeto en una foto?

Si tomo una foto de un molino de viento en el horizonte, dado que conozco el tamaño del sensor y la distancia focal de la lente y otros factores relacionados con la toma, ¿podría calcular qué tan lejos está un objeto del fotógrafo?

Sí, probablemente puedas con un poco de matemáticas complejas, pero está más allá de mí. Si está en el horizonte, puede pasar por alto todo eso y simplemente multiplicar la altura de sus ojos (en pies, incluida la altura de cualquier terreno o edificio en el que se encuentre) por 1.5 y luego encontrar la raíz cuadrada de eso, lo que le da el ( aproximada) distancia al horizonte en millas
Mi Canon 100mm f/2.8 IS USM (y presumiblemente algunos otros lentes) registran la distancia del sujeto dentro de los datos EXIF, ¡podría valer la pena investigar si su equipo hace esto antes de entrar en cálculos matemáticos complicados!
@ChrisFletcher - wow - Nunca busqué eso en el EXIF, sería genial
@Chris La distancia de enfoque probablemente solo diga "infinito", ¡lo cual no es tan útil!
@Matt Grum No pretenderé saber cómo funciona, supongo que a distancias lo suficientemente grandes podría tener dificultades para resolverlo. Pero al menos con esta lente tengo una variedad de tomas en las que los datos EXIF ​​especifican distancias con una precisión de un centímetro: flickr.com/photos/cfletcher86/5744389335/meta/in/photostream
@Chris, la cámara "conoce" la distancia del sistema AF y, como usted sugiere, se vuelve muy imprecisa en grandes distancias (¡pero sigue siendo lo suficientemente precisa como para que la imagen esté enfocada!). Además, el hecho de que EXIF ​​especifique la distancia hasta un centímetro, ¡no significa que la cifra sea precisa hasta un centímetro!
¡@ElendilTheTall calcular la distancia al horizonte es en realidad más difícil que calcular la distancia al objeto!
Matt: Por lo que sé, la información se envía de vuelta desde la lente (que conoce la distancia de enfoque, aproximadamente) para E-TTL2. Sin embargo, solo funciona con lentes Canon con USM. Chris: El hecho de que el número esté en centímetros no dice nada sobre su precisión.
Si solo está interesado en el resultado y no en las matemáticas en sí, algunas cámaras registran la distancia del sujeto en información EXIF.

Respuestas (5)

El único otro factor que necesita es la altura del objeto en la vida real (de lo contrario, podría estar fotografiando un modelo que está mucho más cerca de la cámara).

Las matemáticas en realidad no son tan complejas, la relación entre el tamaño del objeto en el sensor y el tamaño del objeto en la vida real es la misma que la relación entre la distancia focal y la distancia al objeto.

Para calcular el tamaño del objeto en el sensor, calcule su altura en píxeles, divida por la altura de la imagen en píxeles y multiplique por la altura física del sensor.

Entonces la suma total es:

Ecuación de distancia al objeto

Revisemos la cordura de esta ecuación.

Si mantenemos todo lo demás constante y aumentamos la distancia focal, la distancia aumenta (ya que la distancia focal está en el numerador). Esto es lo que esperaría, si tiene que acercar su lente para hacer un objeto del tamaño que solía ser otro objeto del mismo tamaño, el primer objeto debe estar más lejos.

Si mantenemos todo lo demás constante y aumentamos la altura real del objeto, entonces nuevamente la distancia aumenta como si dos objetos de diferentes alturas reales aparecieran a la misma altura en la imagen, el más alto debe estar más lejos.

Si mantenemos todo lo demás constante y aumentamos la altura de la imagen, la distancia aumenta, como si dos objetos (del mismo tamaño, recuerde que mantenemos todo lo demás constante) aparecieran con el mismo tamaño de píxel en una imagen recortada y sin recortar, entonces el objeto en la imagen sin recortar debe estar más lejos.

Si mantenemos todo lo demás constante y aumentamos la altura del objeto en píxeles, la distancia disminuye (ahora estamos en el denominador): dos objetos del mismo tamaño, uno ocupa más píxeles, debe estar más cerca.

Finalmente, si mantenemos todo lo demás constante y aumentamos el tamaño del sensor, la distancia disminuye: dos objetos del mismo tamaño tienen la misma altura en píxeles cuando se disparan con una cámara compacta (sensor pequeño, donde 20 mm es una lente larga) y con una DSLR (sensor grande). donde 20 mm es una lente ancha), entonces el objeto en la imagen DSLR debe estar más lejos (porque parecía del mismo tamaño pero con una lente ancha).

Entonces, en otras palabras, "no, no sin saber el tamaño del objeto en la vida real". De lo contrario, tienes dos factores desconocidos. El molino de viento podría ser un modelo más cercano de lo que piensas.
@mattdm exactamente, estaba a punto de dejar eso claro en la respuesta. También podría estar fotografiando una fotografía de un molino de viento, etc.
@ matt-grum Mi punto es que necesitamos uno de los siguientes: 1) el tamaño real del objeto; 2) o dos o más imágenes.
@jetxee, sí, ahora lo entiendo, por su comentario no estaba claro, ya que había declarado que el tamaño del objeto era uno de los conocidos en mi respuesta
Me recuerda a la línea clásica de Father Ted sobre algunas vacas que son pequeñas y otras que están lejos.
Solo para su información: esta fórmula funcionará para molinos de viento y otros objetos relativamente grandes, pero será inexacta para la fotografía macro. Una fórmula más precisa sería (ObjectHeight + ProjectionHeight) * FocalLength / ProjectionHeight, donde ProjectionHeight es PixelObjectHeight * SensorHeight / PixelImageHeight. Esto supone que el objeto está enfocado, de lo contrario se vuelve más complejo. Cuando ObjectHeight es mucho mayor que ProjectionHeight (en otras palabras, cuando la ampliación es pequeña), puede ignorar "+ Altura de proyección" entre paréntesis y la fórmula se simplifica a la de la respuesta.

Como señaló @matt-grum, la fórmula más simple para estimar la distancia al objeto es la fórmula de proyección estenopeica :

x/f = x/d

donde x es el tamaño del objeto en el sensor, f es la distancia focal de la lente, X es el tamaño del objeto y d es la distancia desde el punto nodal hasta el objeto. x y f , y X y d se miden en las mismas unidades, por ejemplo, mm y m respectivamente (para calcular x necesitará estimar el tamaño de píxel de su sensor; por ejemplo, para Pentax K20D es 23,4 mm/4672 px ≈ 5.008e-3 mm/px, es decir, una imagen de 100 px de largo corresponde a x = 50.08e-3 mm).

A continuación, supongo que se desconoce el tamaño del objeto ( X ), y los únicos parámetros conocidos son x (tamaño de la imagen) y f (distancia focal).

El problema es que no podemos saber a partir de una foto si es un objeto pequeño muy cerca de la cámara o un objeto grande lejos, porque la profundidad de campo en las tomas de paisajes suele ser muy grande (y por eso se aplica la fórmula estenopeica).

Para resolver este problema podemos usar dos o más imágenes para medir la distancia. Siempre que pueda medir todos los ángulos y la distancia entre dos posiciones de la cámara, también puede calcular la distancia al objeto remoto. Pero medir todos los ángulos no es una tarea fácil.

Un enfoque más fácil es tomar dos fotos que permanezcan en la misma línea que el objeto, con el objeto en el centro de la imagen. Deje que la distancia al objeto en la primera foto sea d₁ , y el tamaño de la imagen sea x₁ :

x_1/f = X/d_1

Luego, si movemos los metros de la cámara directamente hacia el objeto, en la segunda foto tenemos un tamaño de imagen x₂ ligeramente mayor que x₁ :

( nota : el denominador en la siguiente expresión es incorrecto, en lugar de "d1" debería ser "d2" o equivalentemente "d1-s")

x_2/f = X/(d_1 - s)

lo que nos da

d_1 = s x_2 / (x_2 - x_1)

Evidentemente, si s no es lo suficientemente grande como para afectar significativamente el tamaño de la imagen, no puede estimar la distancia de manera confiable y necesita usar métodos más complicados. Cuanto mayor sea la diferencia x₂ - x₁ , mejor.

ahh, ahora entiendo lo que querías decir con tu comentario, supuse que se conocía el tamaño del objeto; de lo contrario, se vuelve mucho más complicado, ya que no solo necesitas al menos dos cámaras, sino que las cámaras deben estar calibradas
@sastanin Estoy probando tu fórmula pero no pude hacer que funcione. Hice una página aquí photo.stackexchange.com/questions/80195/…

Sé que es un hilo viejo, pero esta pregunta parece surgir de vez en cuando. FWIW, agregué una calculadora para calcular la distancia de un objeto en una imagen.

http://www.scantips.com/lights/subjectdistance.html

Aún tendrá que conocer sus valores para que funcione, uno de los cuales es la altura real aproximada del objeto. Discutido allí.

En lugar de tratar de usar fórmulas si investiga los métodos náuticos para estimar distancias que involucran algunas "reglas generales" básicas, por ejemplo, si está parado a 1 pie sobre el nivel del agua, está a 3 millas náuticas del horizonte si levanta el pulgar en Con los brazos extendidos, el objeto que mira está cubierto, tiene 100 pies de altura (creo). He olvidado la mayoría de estos, ya que ya no los uso, pero funcionan y, una vez que los aprende y los usa con regularidad, son notablemente precisos.

Esta no es la regla general náutica. El horizonte está a 3 millas de distancia a 6' sobre el nivel del mar, no a 1'. La regla general es: "multiplique su altura, en pies, por 1,5. La raíz cuadrada de ese número es la distancia al horizonte, en millas". (es decir, (6' * 1,5)^0,5 = 3 millas).

Respuesta simple: no. Tienes dos variables y una sola ecuación.

Muy baja calidad en comparación con la respuesta aceptada ...
Pero muy simple y (correctamente) al grano.
puede suponer que esto está implícito en la pregunta, y la respuesta requiere averiguar una ecuación adicional