Come posso calcolare la distanza di un oggetto in una foto?


36

Se avessi scattato una foto di un mulino a vento all'orizzonte - dato che conosco le dimensioni del sensore e la lunghezza focale dell'obiettivo e altri fattori relativi allo scatto - potrei calcolare la distanza di un oggetto dal fotografo?


Sì, probabilmente puoi farlo con un po 'di matematica complessa, ma è oltre me. Se è all'orizzonte puoi bypassare tutto ciò e semplicemente moltiplicare l'altezza dei tuoi occhi (in piedi, inclusa l'altezza di qualsiasi terra o edificio su cui ti trovi) per 1,5, quindi trovare la radice quadrata di quello, che ti dà il ( approssimativo) distanza dall'orizzonte in miglia
ElendilTheTall

2
La mia Canon 100mm f / 2.8 IS USM (e presumibilmente alcuni altri obiettivi) registra la distanza del soggetto entro i dati EXIF, potrebbe valere la pena indagare se la tua attrezzatura lo fa prima di entrare in una matematica complicata!
ChrisFletcher,

2
@Chris La distanza di messa a fuoco probabilmente dirà semplicemente "infinito" che non è poi così utile!
Matt Grum,

1
@Chris la fotocamera "conosce" la distanza dal sistema AF e, come suggerisci, diventa molto imprecisa su grandi distanze (ma comunque abbastanza precisa da mettere a fuoco l'immagine!). Anche solo perché EXIF ​​specifica la distanza fino a un centimetro, non significa che la cifra sia precisa fino a un centimetro!
Matt Grum,

1
Matt: Per quanto ne so, le informazioni vengono inviate dall'obiettivo (che conosce la distanza di messa a fuoco, approssimativamente) per E-TTL2. Funziona solo con obiettivi Canon con USM, tuttavia. Chris: Il numero in centimetri non ti dice nulla sulla sua precisione.
Joey,

Risposte:


35

L'unico altro fattore di cui hai bisogno è l'altezza dell'oggetto nella vita reale (altrimenti potresti fotografare un modello che è molto più vicino alla fotocamera).

La matematica non è in realtà così complessa, il rapporto tra la dimensione dell'oggetto sul sensore e la dimensione dell'oggetto nella vita reale è uguale al rapporto tra la lunghezza focale e la distanza dall'oggetto.

Per calcolare la dimensione dell'oggetto sul sensore, calcola l'altezza in pixel, dividi per l'altezza dell'immagine in pixel e moltiplica per l'altezza fisica del sensore.

Quindi l'intera somma è:

Distanza dall'equazione dell'oggetto

Controlliamo la sanità mentale questa equazione.

Se manteniamo tutto il resto costante e aumentiamo la lunghezza focale, la distanza aumenta (poiché la lunghezza focale è sul numeratore). Questo è quello che ti aspetteresti, se devi ingrandire l'obiettivo per rendere un oggetto delle dimensioni di un altro oggetto di dimensioni uguali, il primo oggetto deve essere più lontano.

Se manteniamo tutto il resto costante e aumentiamo l'altezza reale dell'oggetto, di nuovo la distanza aumenta come se due oggetti di diverse altezze reali appaiano alla stessa altezza nell'immagine, più alto deve essere più lontano.

Se manteniamo tutto il resto costante e aumentiamo l'altezza dell'immagine, la distanza aumenta, come se due oggetti (della stessa dimensione, ricordiamo che manteniamo tutto il resto costante) appaiano le stesse dimensioni in pixel in un'immagine ritagliata e non ritagliata, quindi l'oggetto nell'immagine non ritagliata deve essere più lontana.

Se manteniamo tutto il resto costante e aumentiamo l'altezza dell'oggetto in pixel, allora la distanza diminuisce (siamo sul denominatore ora): due oggetti di uguali dimensioni, uno occupa più pixel, deve essere più vicino.

Infine, se manteniamo tutto il resto costante e aumentiamo le dimensioni del sensore, la distanza diminuisce: due oggetti di uguali dimensioni hanno la stessa altezza in pixel quando vengono ripresi con un compatto (sensore piccolo, dove 20 mm è un obiettivo lungo) e ripresi con una DSLR (sensore grande dove 20 mm è un obiettivo largo), quindi l'oggetto nell'immagine DSLR deve essere più lontano (perché appariva delle stesse dimensioni ma con un obiettivo largo).


1
Quindi, in altre parole, "no, non senza conoscere le dimensioni dell'oggetto nella vita reale". Altrimenti, hai due fattori sconosciuti. Il mulino a vento potrebbe essere un modello più vicino di quanto pensi.
mattdm,

1
@mattdm esattamente, stava per chiarirlo nella risposta. Potresti anche fotografare una fotografia di un mulino a vento, ecc.
Matt Grum,

@ matt-grum Il mio punto è che abbiamo bisogno di uno dei seguenti: 1) la dimensione dell'oggetto reale; 2) o due o più immagini.
sastanin,

@jetxee sì, lo capisco ora, dal tuo commento non era chiaro, poiché avevo affermato che la dimensione dell'oggetto era uno dei noti nella mia risposta
Matt Grum,

puoi provare questa legge, dal parallelismo dei triangoli, l'immagine (pixel) / sensor_height non si adatta all'equazione e a cosa ti riferisci per altezza del sensore ?!
Errore

16

Come notato da matt-grum, la formula più semplice per stimare la distanza dall'oggetto è la formula di proiezione a foro stenopeico :

x / f = X / d

dove x è la dimensione dell'oggetto sul sensore, f è la lunghezza focale dell'obiettivo, X è la dimensione dell'oggetto e d è la distanza dal punto nodale all'oggetto. x e f , X e d sono misurati nelle stesse unità, ad es. mm e m rispettivamente (per calcolare x è necessario stimare la dimensione dei pixel per il sensore; ad esempio, per Pentax K20D è 23,4 mm / 4672 px ≈ 5.008e-3 mm / px, ovvero un'immagine lunga 100 px corrisponde a x = 50.08e-3 mm).

Di seguito suppongo che la dimensione dell'oggetto ( X ) sia sconosciuta e che gli unici parametri noti siano x (dimensione dell'immagine) ef (lunghezza focale).

Il problema è che non possiamo dire da una foto se è un piccolo oggetto molto vicino alla fotocamera o un grande oggetto lontano, perché la profondità di campo negli scatti di paesaggio è di solito molto grande (ed è per questo che è applicabile la formula del foro stenopeico).

Per risolvere questo problema, possiamo usare due o più immagini per misurare la distanza. Se è possibile misurare tutti gli angoli e la distanza tra due posizioni della videocamera, è anche possibile calcolare la distanza dall'oggetto remoto. Ma misurare tutti gli angoli non è un compito facile.

Un approccio più semplice è quello di scattare due foto che rimangono sulla stessa linea dell'oggetto, con l'oggetto al centro dell'immagine. Lascia che la distanza dell'oggetto sulla prima foto sia d₁ e che la dimensione dell'immagine sia x₁ :

x_1 / f = X / d_1

Quindi se spostiamo i misuratori della fotocamera direttamente verso l'oggetto, nella seconda foto abbiamo dimensioni dell'immagine x₂ leggermente più grandi di x₁ :

( nota : il denominatore nell'espressione successiva non è corretto, invece di "d1" dovrebbe essere "d2" o equivalentemente "d1-s")

x_2 / f = X / (d_1 - s)

Che ci dà

d_1 = s x_2 / (x_2 - x_1)

Evidentemente, se s non è un grande enogh che influisce in modo significativo sulla dimensione dell'immagine, non è possibile stimare la distanza in modo affidabile e è necessario utilizzare metodi più complicati. Maggiore è la differenza x₂ - x₁ , meglio è.


ahh capisco cosa intendevi con il tuo commento ora, stavo supponendo che la dimensione dell'oggetto fosse nota, altrimenti diventa molto più complicata, dal momento che hai bisogno non solo di almeno due telecamere, ma le telecamere devono essere calibrate
Matt Grum,

@sastanin Sto provando la tua formula ma non sono riuscito a farlo funzionare. Ho fatto una pagina qui photo.stackexchange.com/questions/80195/…
omega

2

So che è un vecchio thread, ma questa domanda sembra sorgere di tanto in tanto. FWIW, ho aggiunto una calcolatrice per calcolare la distanza di un oggetto in un'immagine.

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

Dovrai comunque conoscere i tuoi valori per farlo funzionare, uno dei quali è l'altezza reale approssimativa dell'oggetto. Discusso lì.


1

Invece di provare a usare le formule se si studiano i metodi nautici per stimare le distanze che comportano alcune "regole empiriche" di base, ad esempio se ci si trova a 1 piede sopra l'altezza dell'acqua, ci si trova a 3 miglia nautiche dall'orizzonte se si tiene il pollice a lungo le braccia l'oggetto che guardi è coperto è alto 100 piedi (penso) ho dimenticato la maggior parte di questi come non li uso più ma funzionano e una volta imparati e usati regolarmente sono straordinariamente precisi.


così interessante ! amo cose del genere - spero che non vengano dimenticate con il tempo
Rob,

0

Risposta semplice - no. Hai due variabili e una sola equazione.


1
Qualità molto bassa rispetto alla risposta accettata ...
Olivier

Ma molto semplice e (correttamente) al punto.
Michael C

puoi supporre questo implicito nella domanda e la risposta richiede di capire un'equazione aggiuntiva
Errore
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.