图像中的物体尺寸根据远处的相机距离而定



我有一台相机,放在离一幅宽50厘米、高15厘米的肖像(矩形)10米远的地方,我想在拍摄的图像中获得这幅肖像的尺寸。所捕获的图像的宽度=800像素,高度=600像素。

如何计算图像中肖像的尺寸?请帮忙吗?

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

让我们定义一些变量。

  • 水平视野:FOV(需要指定)
  • 实物肖像宽度:PW=50cm
  • 拍摄的人像平面宽度: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。

我同意Timothy的回答,因为你需要知道相机的视场(FOV)。然而,我不确定我是否完全赞同他的方法。我认为这是相似的,但不同的是,FOV需要除以2,才能将我们的视图拆分为两个直角三角形。使用tan(x)=对面/相邻

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

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

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

IW=标准(FOV/2)*(2*Dist*100)

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

PW=IW/NumberPixels
PW=IW/800

现在用这个值除以真实宽度,得到像素数。

PixelWidth=真宽度/PW

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

最新更新