如果我在地平线上拍摄了风车的照片(假设我知道传感器的大小和镜头的焦距以及与拍摄有关的其他因素),我可以计算出物体与摄影师的距离是多少?
如果我在地平线上拍摄了风车的照片(假设我知道传感器的大小和镜头的焦距以及与拍摄有关的其他因素),我可以计算出物体与摄影师的距离是多少?
Answers:
您唯一需要的其他因素是现实生活中物体的高度(否则,您可能正在拍摄距离相机更近的模型)。
数学实际上并不那么复杂,传感器上物体的大小与现实生活中物体的大小之比与焦距与到物体的距离之比相同。
要计算传感器上物体的大小,请计算其高度(以像素为单位),除以图像高度(以像素为单位),然后乘以传感器的物理高度。
因此,总和为:
让我们理智地检查一下这个方程。
如果我们保持其他所有参数不变并增加焦距,则距离会增加(因为焦距在分子上)。这就是您所期望的,如果您必须缩放镜头以使一个对象的大小与另一个以前相同大小的对象的大小相同,则第一个对象必须更远。
如果我们使其他所有内容保持不变并增加对象的实际高度,则距离会再次增加,就好像两个不同实际高度的对象在图像中出现的高度相同时,更高的对象必须离得更远。
如果我们将其他所有内容保持不变并增加图像高度,则距离会增加,就好像两个对象(大小相同,请记住我们将其他所有内容都保持不变)在裁剪和未裁剪的图像中出现的像素大小相同时,该对象未裁剪图像中的图像必须远离。
如果我们将其他所有内容保持不变并以像素为单位增加对象高度,则距离会减小(我们现在在分母上):两个大小相等的对象(一个占用更多像素),它必须更近。
最后,如果我们保持其他所有参数不变并增加传感器尺寸,则距离会减小:使用紧凑型相机(小传感器,其中20mm是长镜头)拍摄和使用DSLR(大传感器)拍摄时,两个大小相等的对象具有相同的像素高度(如果20mm是一个广角镜),则DSLR图像中的物体必须离得更远(因为它看上去大小相同,但是使用了广角镜)。
如@ matt-grum所述,估计到物体距离的最简单公式是针孔投影公式:
其中x是传感器上物体的大小,f是透镜的焦距,X是物体的大小,d是从节点到物体的距离。x和f以及X和d分别以相同的单位(例如mm和m)进行测量(要计算x,您需要估算传感器的像素大小;例如,对于Pentax K20D来说,它是23.4 mm / 4672 px 5.008e-3 mm / px,即长100 px的图像对应于x = 50.08e-3 mm)。
在下文中,我假设对象(X)的大小未知,并且唯一已知的参数是x(图像大小)和f(焦距)。
问题在于,我们无法从一张照片中分辨出是靠近相机的小物体还是远处的大物体,因为风景照片中的景深通常很大(这就是针孔公式适用的原因)。
为了解决这个问题,我们可以使用两个或多个图像来测量距离。如果您可以测量两个相机位置之间的所有角度和距离,还可以计算到远程对象的距离。但是测量所有角度并非易事。
一种更简单的方法是拍摄两张与对象位于同一行的照片,并且对象位于图像的中心。令与第一张照片上的物体的距离为d₁,图像尺寸为x₁:
然后,如果我们将相机的米数直接移向物体,那么在第二张照片上,我们得到的图像尺寸x²略大于x₁:
(注意:下一个表达式中的分母不正确,而不是“ d1”,应该是“ d2”或等效的“ d1-s”)
这给了我们
显然,如果s不会显着影响图像尺寸,则无法可靠地估计距离,需要使用更复杂的方法。x 2 -x 1之差越大越好。
我知道这是一个旧线程,但是这个问题似乎不时出现。FWIW,我添加了一个计算器来计算图像中的物距。
http://www.scantips.com/lights/subjectdistance.html
您仍然必须知道您的值才能使其生效,其中之一是对象的近似实际高度。在那里讨论。