Como calculo a distância de um objeto em uma foto?

36

Se eu fotografasse um moinho de vento no horizonte - já que sei o tamanho do sensor e a distância focal da lente e outros fatores relacionados à foto - eu poderia calcular a que distância um objeto está do fotógrafo?

Roubar
fonte
Sim, você provavelmente consegue com um pouco de matemática complexa, mas está além de mim. Se estiver no horizonte, você pode ignorar tudo isso e apenas multiplicar a altura dos seus olhos (em pés, incluindo a altura de qualquer terreno ou edifício em que esteja) por 1,5 e, em seguida, encontre a raiz quadrada disso, que fornece a ( aproximada) distância ao horizonte em milhas
ElendilTheTall
2
Minha Canon 100mm f / 2.8 IS USM (e presumivelmente algumas outras lentes) registra a distância do assunto nos dados EXIF; talvez valha a pena investigar se o seu equipamento faz isso antes de entrar em matemática complicada!
31411 ChrisFletcher
2
@ Chris A distância focal provavelmente dirá apenas "infinito", o que não é tão útil!
Matt Grum
1
@ Chris, a câmera "conhece" a distância do sistema AF e, como sugere, ela se torna muito imprecisa em grandes distâncias (mas ainda precisa o suficiente para que a imagem fique em foco!). Também porque o EXIF ​​especifica a distância até um centímetro, não significa que o número seja preciso até um centímetro!
Matt Grum
1
Matt: Até onde eu sei, as informações são enviadas de volta da lente (que conhece a distância de foco aproximadamente) para o E-TTL2. Porém, ele funciona apenas com lentes Canon com USM. Chris: O número em centímetros não diz nada sobre sua precisão.
Joey

Respostas:

35

O único outro fator que você precisa é a altura do objeto na vida real (caso contrário, você poderia estar fotografando um modelo muito mais próximo da câmera).

A matemática não é tão complexa, a proporção entre o tamanho do objeto no sensor e o tamanho do objeto na vida real é igual à proporção entre a distância focal e a distância do objeto.

Para calcular o tamanho do objeto no sensor, calcule a altura em pixels, divida pela altura da imagem em pixels e multiplique pela altura física do sensor.

Portanto, a soma total é:

Distância à equação do objeto

Vamos sanidade verificar esta equação.

Se mantivermos todo o resto constante e aumentarmos a distância focal, a distância aumentará (como a distância focal está no numerador). Isso é o que você esperaria: se você precisar ampliar a lente para fazer com que um objeto seja do tamanho de outro objeto de tamanho igual, o primeiro objeto deve estar mais distante.

Se mantivermos todo o resto constante e aumentarmos a altura real do objeto, novamente a distância aumentará como se dois objetos de diferentes alturas reais aparecessem a mesma altura na imagem, o mais alto deve estar mais distante.

Se mantivermos todo o resto constante e aumentarmos a altura da imagem, a distância aumentará, como se dois objetos (do mesmo tamanho, lembre-se de manter todo o resto constante) pareçam o mesmo tamanho de pixel em uma imagem cortada e não cortada, e então o objeto na imagem não cortada deve estar mais distante.

Se mantivermos todo o resto constante e aumentarmos a altura do objeto em pixels, a distância diminuirá (estamos no denominador agora): dois objetos de tamanho igual, um ocupa mais pixels e deve estar mais próximo.

Finalmente, se mantivermos todo o resto constante e aumentarmos o tamanho do sensor, a distância diminuirá: dois objetos de tamanho igual terão a mesma altura em pixels quando fotografados com um compacto (sensor pequeno, onde 20 mm é uma lente longa) e fotografados com uma DSLR (sensor grande onde 20 mm é uma lente grande), o objeto na imagem DSLR deve estar mais distante (porque parecia o mesmo tamanho, mas com uma lente grande).

Matt Grum
fonte
1
Então, em outras palavras, "não, não sem conhecer o tamanho do objeto na vida real". Caso contrário, você tem dois fatores desconhecidos. O moinho de vento pode ser um modelo mais próximo do que você pensa.
Mattdm 26/05
1
O @mattdm exatamente estava prestes a deixar isso claro na resposta. Você também pode ser fotografar uma fotografia de um moinho de vento etc.
Matt Grum
@ matt-grum O que quero dizer é que precisamos de um dos seguintes itens: 1) o tamanho real do objeto; 2) ou duas ou mais imagens.
Sastanin
@jetxee sim eu entendo agora, desde o seu comentário não ficou claro, como eu havia afirmado tamanho do objeto a ser um dos knowns em minha resposta
Matt Grum
você pode comprovar essa lei, a partir da parralaxia de triângulos, a imagem (pixels) / sensor_height não se encaixa na equação e a que se refere a altura do sensor ?!
Erro
16

Conforme observado em @ matt-grum, a fórmula mais simples para estimar a distância do objeto é a fórmula de projeção :

x / f = X / d

onde x é o tamanho do objeto no sensor, f é a distância focal da lente, X é o tamanho do objeto ed é a distância do ponto nodal ao objeto. x e f , e X e d são medidos nas mesmas unidades, por exemplo, mm e m respetively (para calcular x você precisa para estimar o tamanho do pixel para o seu sensor, por exemplo, para Pentax K20D é 23,4 mm / 4672 px ≈ 5,008e-3 mm / px, ou seja, uma imagem com 100 px de comprimento corresponde a x = 50,08e-3 mm).

A seguir, assumo que o tamanho do objeto ( X ) é desconhecido e os únicos parâmetros conhecidos são x (tamanho da imagem) ef (distância focal).

O problema é que não podemos distinguir de uma foto se é um objeto pequeno muito próximo da câmera ou um objeto grande distante, porque a profundidade de campo nas fotos de paisagens geralmente é muito grande (e é por isso que a fórmula de pinhole é aplicável).

Para resolver esse problema, podemos usar duas ou mais imagens para medir a distância. Desde que você possa medir todos os ângulos e distâncias entre duas posições da câmera, também é possível calcular a distância do objeto remoto. Mas medir todos os ângulos não é uma tarefa fácil.

Uma abordagem mais fácil é tirar duas fotos que permanecem na mesma linha do objeto, com o objeto no centro da imagem. Deixe a distância do objeto na primeira foto ser d₁ e o tamanho da imagem seja x₁ :

x_1 / f = X / d_1

Então se mover a câmera s metros diretamente para o objeto, em seguida, na segunda foto temos tamanho da imagem x₂ ligeiramente maior do que símbolos X- :

( nota : o denominador na próxima expressão está incorreto; em vez de "d1", ele deve ser "d2" ou equivalente "d1-s")

x_2 / f = X / (d_1 - s)

O que nos dá

d_1 = s x_2 / (x_2 - x_1)

Evidentemente, se s não for grande o suficiente para afetar significativamente o tamanho da imagem, você não poderá estimar a distância com segurança e precisará usar métodos mais complicados. Quanto maior a diferença x₂ - x₁ , melhor.

sastanina
fonte
ahh eu conseguir o que você quer dizer com seu comentário agora, eu estava assumindo tamanho do objeto era conhecido, caso contrário, ele fica muito mais complicado, como você precisa não só pelo menos duas câmaras, mas as câmeras devem ser calibrados
Matt Grum
@sastanin Estou tentando sua fórmula, mas não consegui fazê-la funcionar. Eu fiz uma página aqui photo.stackexchange.com/questions/80195/...
omega
2

Eu sei que é um tópico antigo, mas essa pergunta parece surgir de vez em quando. FWIW, adicionei uma calculadora para calcular a distância de um objeto em uma imagem.

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

Você ainda precisará conhecer seus valores para fazê-lo funcionar, um dos quais é a altura real aproximada do objeto. Discutido lá.

WayneF
fonte
1

Em vez de tentar usar fórmulas se você investigar os métodos náuticos de estimativa de distâncias, que envolvem algumas "regras práticas" básicas, por exemplo, se você estiver em um pé acima da altura da água, você fica a 3 milhas náuticas do horizonte, se você segurar o polegar em com os braços estendidos, o objeto que você olha é coberto, mede 100 pés de altura (eu acho). Eu esqueci a maioria deles, já que não os uso mais, mas eles funcionam, e uma vez aprendidos e usados ​​regularmente são notavelmente precisos.

adwb
fonte
tão interessante ! amor coisas como esta - espero que estas não são esquecidos com o tempo
Rob
0

Resposta simples - não. Você tem duas variáveis ​​e apenas uma equação.

Brian
fonte
1
De qualidade muito baixa em comparação com a resposta aceita ...
Olivier
Mas muito simples e (corretamente) direto ao ponto.
Michael C
você pode assumir que isso está implícito na pergunta, e a resposta requer a equação extra
Erro