如何从图像中的对象大小(以像素为单位)根据英寸厘米等测量值来测量现实世界中的对象大小?

How to measure object size in real world in terms of measurement like inches centimeters etc from object size in the image in pixels?

我根据包含对象的图像 pixel 计算了对象大小。我想测量现实世界中的物体大小。有没有办法找出乘数来衡量实际尺寸?我目前正在使用 python 进行实施。

通常,您将使用相机获取图像,相机通过镜头将 3 维场景投射到 2 维传感器上。垂直(高度)投影如下图所示(我假设 直线透镜 ):

您说您感兴趣的对象的高度(以图像的像素为单位)为 150 像素:

你说图像尺寸总高度为 800 像素,假设这是传感器分辨率:

您有兴趣找到距离 D 处的物体 H_{obj} 的真实高度相机。

弧度表示角度我们可以建立以下关系:

其中 f 是镜头的焦距。

分离术语并代入我们达到

但是您已经用像素表示了 h_{obj},而您希望 H_{obj} 以公制表示。因此,让我们首先从像素移动到毫米。

假设您不知道传感器高度,因此我们暂时将其保留为变量。重新排列,将焦距表示为毫米 (mm) 并代入前面的方程式,我们有:

注意术语:

\alpha 表示相机的垂直视野(因为我们使用传感器高度),这是通常用于相机和镜头计算的参数。

通常它以度数给出,所以我们只是将它转换为弧度。

  • 如果您确实知道镜头的焦距和传感器的尺寸,直接计算视野即可。这给我们留下了以下等式:

视野是您缺少的参数,无法完成您的计算。为了完成这个例子,我们假设它是 90º:

您现在用来表达距离的单位系统 D 将定义 h_{obj} 的表达单位。


另一种方法是,给定视野并假设直线镜头,您可以计算距相机定义距离处的像素高度和像素宽度。

距离 D 处的垂直分辨率


有关视野的更多信息: