如何从图像中的对象大小(以像素为单位)根据英寸厘米等测量值来测量现实世界中的对象大小?
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 处的垂直分辨率
有关视野的更多信息:
我根据包含对象的图像 pixel
计算了对象大小。我想测量现实世界中的物体大小。有没有办法找出乘数来衡量实际尺寸?我目前正在使用 python
进行实施。
通常,您将使用相机获取图像,相机通过镜头将 3 维场景投射到 2 维传感器上。垂直(高度)投影如下图所示(我假设 直线透镜 ):
您说您感兴趣的对象的高度(以图像的像素为单位)为 150 像素:
你说图像尺寸总高度为 800 像素,假设这是传感器分辨率:
您有兴趣找到距离 D 处的物体 H_{obj} 的真实高度相机。
用弧度表示角度我们可以建立以下关系:
其中 f 是镜头的焦距。
分离术语并代入我们达到
但是您已经用像素表示了 h_{obj},而您希望 H_{obj} 以公制表示。因此,让我们首先从像素移动到毫米。
假设您不知道传感器高度,因此我们暂时将其保留为变量。重新排列,将焦距表示为毫米 (mm) 并代入前面的方程式,我们有:
注意术语:
\alpha 表示相机的垂直视野(因为我们使用传感器高度),这是通常用于相机和镜头计算的参数。
通常它以度数给出,所以我们只是将它转换为弧度。
- 如果您确实知道镜头的焦距和传感器的尺寸,直接计算视野即可。这给我们留下了以下等式:
视野是您缺少的参数,无法完成您的计算。为了完成这个例子,我们假设它是 90º:
您现在用来表达距离的单位系统 D 将定义 h_{obj} 的表达单位。
另一种方法是,给定视野并假设直线镜头,您可以计算距相机定义距离处的像素高度和像素宽度。
距离 D 处的垂直分辨率
有关视野的更多信息: