根据相机距离遥远的图像中的物体尺寸

时间:2014-02-15 23:16:13

标签: image math image-processing geometry space

我有一个相机放置在距离宽度= 50厘米,高度= 15厘米的肖像(矩形)10米远的地方,我希望在拍摄的图像中获得此肖像的尺寸。捕获的图像宽度= 800像素,高度= 600像素。

如何计算图像内部纵向的尺寸?有什么帮助吗?

2 个答案:

答案 0 :(得分:1)

我假设相机位于肖像的中心法线上,直视着肖像的中心。

让我们定义一些变量。

  • 水平视野:FOV(您需要指定)
  • 物理人像宽度:PW = 50 cm
  • 捕获的纵向平面宽度:CW cm(未知)
  • 图像宽度:IW = 800 px
  • 图像空间中的纵向宽度:X px(未知)
  • 从相机到主体的距离:D = 10米

我们知道tan(FOV)=(CW cm)/(100 * D cm)。因此CW = tan(FOV)* 100 * D cm。

我们知道PW / CW = X / IW。因此,X =(IW * PW)/(tan(FOV)* 100 * D)px。

答案 1 :(得分:0)

我同意Timothy的回答,因为你需要知道相机的视野(FOV)。我不确定我是否完全遵循/同意他的方法。我认为这是相似的,但它有所不同,FOV需要除以2将我们的视图分成两个直角三角形。使用tan(x)= opposite / adjacent

tan(FOV / 2)=(IW / 2)/(Dist * 100)

其中 IW 是真实的图像宽度(必须除以2,因为我们只发现找到宽度的一半带有直角三角形), Dist 是从相机到肖像的距离(转换为厘米)。

重新排列以找到整个图像的宽度(IW):

IW = tand(FOV / 2)*(2 * Dist * 100)

您现在可以使用图像宽度中的像素数(800为您)计算每个像素(PW)的宽度。

PW = IW / NumPixels
PW = IW / 800

现在将真实宽度除以此值以查找像素数。

PixelWidth = TrueWidth / PW

高度也可以这样做,但你需要你的相机的视野。 我不确定这是蒂莫西的答案,但我确信这是正确的。