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