題:
如何計算照片中物體的距離?
Rob
2011-05-26 14:52:10 UTC
view on stackexchange narkive permalink

如果我在地平線上拍了風車的照片-考慮到我知道傳感器的大小和鏡頭的焦距以及與拍攝有關的其他因素,我是否可以計算出物體與攝影師的距離?

是的,您可能可以進行一些複雜的數學運算,但這超出了我的範圍。如果在地平線上,您可以繞過所有這些,而只需將眼睛的高度(以英尺為單位,包括您所在的任何土地或建築物的高度)乘以1.5,然後找到其平方根即可,大約)到地平線的距離(以英里為單位)
我的佳能100mm f / 2.8 IS USM(可能還有其他一些鏡頭)記錄了EXIF數據內的被攝體距離,因此在進行任何復雜的數學運算之前,如果您的設備這樣做,可能值得調查!
@ChrisFletcher-哇-Iv從未在EXIF中尋找它,這很酷
@Chris聚焦距離可能只是說“無限遠”,這並不是很有用!
-1
-1
@ElendilTheTall算出到地平線的距離實際上比算出到物體的距離更困難!
馬特:據我所知,信息是從E-TTL2的鏡頭(大約知道對焦距離)傳回的。不過,它僅適用於帶有USM的佳能鏡頭。克里斯:這個數字以厘米為單位,不能告訴您其準確性。
如果您只對結果感興趣,而對數學本身不感興趣,則某些攝像機會在EXIF信息中記錄對象的距離。
五 答案:
Matt Grum
2011-05-26 16:41:38 UTC
view on stackexchange narkive permalink

您需要的唯一其他因素是現實生活中物體的高度(否則,您可能正在拍攝更接近相機的模型)。

數學實際上並不那麼複雜,物體在傳感器上的尺寸與現實生活中物體的尺寸之比與焦距與到物體的距離之比相同。

計算出物體的尺寸傳感器上的對象,計算出它的高度(以像素為單位),除以圖像高度(以像素為單位),然後乘以傳感器的物理高度。

所以總和為:

Distance to object equation

讓我們理智地檢查一下這個方程。

如果我們將其他所有條件保持不變並增加焦距,則距離會增加(因為焦距為在分子上)。這就是您所期望的,如果您必須縮放鏡頭以使一個對象的大小與另一個以前相等的大小的對象相同,則第一個對象必須距離更遠。

如果我們將其他所有內容保持不變,並且增加對象的實際高度,然後距離又增加,就好像兩個不同實際高度的對像在圖像中出現的高度相同時,更高的對象必須更遠。

如果我們保持其他所有常量不變並增加圖像的高度,然後距離增加,就好像兩個對象(大小相同,請記住我們將其他所有內容保持不變)在裁剪和未裁剪的圖像中出現相同的像素大小一樣,那麼未裁剪的圖像中的對象必須離得更遠

如果我們將其他所有內容保持不變並以像素為單位增加對象高度,則距離減小(我們現在在分母上):兩個大小相等的對象,其中一個佔據更多像素,必須更近一點。

最後,如果我們保持其他所有參數不變並增加傳感器尺寸,則距離會減小:使用緊湊型相機(小型傳感器,其中20mm是長鏡頭)拍攝並使用DSLR拍攝時,兩個大小相等的對象具有相同的像素高度(20mm是寬鏡頭的大型傳感器),則DSLR圖像中的物體必須離得更遠(因為它看上去大小相同,但帶有寬鏡頭)。

因此,換句話說,“不,不是不知道現實生活中物體的大小”。否則,您有兩個未知因素。風車可能是比您想像的更接近的模型。
確切地說,@mattdm即將在答案中表明這一點。您也可以拍攝風車等的照片。
-1
@jetxee是的,我現在明白了,從您的評論中還不清楚,因為我已經說過對像大小是答案中的已知問題之一
您能從三角形的視差,圖像(像素)/傳感器高度不適合方程式中證明這一定律嗎?傳感器高度指的是什麼?
sastanin
2011-05-26 17:52:24 UTC
view on stackexchange narkive permalink

如@ matt-grum所述,估計到物體距離的最簡單公式是針孔投影公式

x/f = X/d

其中 x 是傳感器上物體的大小, f 是鏡頭的焦距, X 是物體的大小, d 是節點到物體的距離。 x f ,以及 X d 以相同的單位進行測量,例如mm和m分別重複(要計算 x ,您需要估算傳感器的像素大小;例如,對於Pentax K20D,它是23.4 mm / 4672 px≈5.008e-3 mm / px,即一幅100像素長的圖像對應於 x = 50.08e-3 mm)。

在下面,我假設對象的大小( X )是未知的,唯一已知的參數是 x (圖像大小)和 f (焦距)。

問題是我們無法分辨從一張照片開始,如果是一個很小的物體很靠近相機,或者是一個很大的物體很遠,因為風景照片中的景深通常很大(這就是針孔公式適用的原因)。

到為了解決這個問題,我們可以使用兩個或多個圖像來測量距離。只要可以測量兩個攝像機位置之間的所有角度和距離,還可以計算到遠程對象的距離。但是測量所有角度並不是一件容易的事。

一種更簡單的方法是拍攝兩張與對象保持在同一直線上的照片,並且對象位於圖像的中心。令到第一張照片上的物體的距離為d₁,圖像尺寸為x₁

x_1/f = X/d_1

然後如果我們將相機 s 米直接移向物體,則在第二張照片上,圖像尺寸 x_2 略大於x₁

note :下一個表達式中的分母不正確,而不是“ d1”,應該是“ d2”或等效的“ d1-s”)

x_2/f = X/(d_1 - s)

哪個給了我們

d_1 = s x_2 / (x_2 - x_1)

很明顯,如果 s 不會顯著影響圖像尺寸,則無法可靠地估計距離,需要使用更複雜的方法。 x2-x₁的差越大,就越好。

嗯,我現在得到您的意思是,我假設對象的大小是已知的,否則它將變得更加複雜,因為您不僅需要至少兩個攝像頭,而且必須校準這些攝像頭
@sastanin我正在嘗試您的公式,但是無法正常工作。我在這裡製作了一個頁面http://photo.stackexchange.com/questions/80195/calculation-for-getting-dimension-of-object-in-image-not-working
WayneF
2015-08-12 09:15:54 UTC
view on stackexchange narkive permalink

我知道這是一個舊線程,但是這個問題似乎不時出現。 FWIW,我添加了一個計算器來計算圖像中的物距。

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

您仍然必須知道您的值才能使其生效,其中之一是對象的近似實際高度。在這裡討論。

adwb
2014-09-10 11:26:18 UTC
view on stackexchange narkive permalink

如果要調查涉及一些基本“經驗法則”的航海距離估算方法,而不是嘗試使用公式,例如,如果您站在水高1英尺的地方,如果您舉起,則距地平線3海裡您的拇指長到您要看的物體被遮蓋的臂高100英尺(我認為),因為我不再使用它們了,但我已經忘記了其中的大多數,但是它們確實起作用,而且一旦學會並定期使用,它們就非常準確。 / p>

太有趣了 !喜歡這樣的東西-希望這些不會隨著時間而被遺忘
這不是航海的經驗法則。地平線在海拔6'處而不是1'處3英里遠。經驗法則是:“您的身高(以英尺為單位)乘以1.5。該數字的平方根是距地平線的距離(以英里為單位)。”(即(6'* 1.5)^ 0.5 = 3英里)。
Brian
2017-01-06 06:19:43 UTC
view on stackexchange narkive permalink

簡單答案-不。您有兩個變量,只有一個方程。

與接受的答案相比質量很低...
但是非常簡單,並且(正確)到了重點。
您可以假設問題中包含此隱式,而答案需要找出額外的等式


該問答將自動從英語翻譯而來。原始內容可在stackexchange上找到,我們感謝它分發的cc by-sa 3.0許可。
Loading...