【问题标题】:How to calculate the distance between object and camera, knowing the pixels occupied by the object in an image- segmentation如何计算物体和相机之间的距离,知道物体在图像分割中占据的像素
【发布时间】:2020-11-17 21:42:03
【问题描述】:

通过使用分割,我能够找到图像中对象占用的像素数。现在我需要使用占用的像素来确定距离。

  • 我有对象的原始尺寸(宽 x 高)

【问题讨论】:

  • 您无法从单个图像维度推导出距离。
  • 作为一个想法,您可以使用固定缩放调整拍摄同一对象的几张图像。然后你测量你到物体的距离并计算每个图像的比率# pixels / (W x H)。通过这样做,您可能会发现这两个值之间的相关性。

标签: image image-processing computer-vision image-segmentation


【解决方案1】:

首先,我们假设镜头将图像聚焦在平面上。

分割出对象后,您将得到 W2 x H2,即对象的像素尺寸。

将对象 W x H 的实际尺寸与您测量的尺寸进行比较。采取

%Scale on width axis
W / W2 = s1
%Scale on height axis
H / H2 = s2
%Average both scales
s = (s1 + s2) / 2

s 将以米/像素为单位测量您的比例。现在检查图像的总尺寸(以像素为单位),即1000 x 1000 或类似的。如果s=0.01,那么您的总尺寸将计算为

dim * s = L
1000 * 0.01 = 10 meters

其中 10 米是您的框架的大小。

现在你被卡住了。如果您只有一张图像,您将无法计算到对象的距离。你需要知道镜头的角度有多宽。这可以从相机规格中获取,也可以推导出来。如果您拍摄一张图像,请使用仪表杆测量到物体的距离。让我们将此维度称为d

我们将使用一些三角函数来推导光圈的角度。比如让d=20 meters

arctan(L/2 / d) = theta
arctan(10/2 / 20) = 14 degrees

有了 theta 派生值,让我们考虑一个示例。你找到L = 10 并观察到theta = 14

L/2 / tan(theta) = d
10/2 / tan(14) = 20 meters

【讨论】:

    猜你喜欢
    • 2020-11-17
    • 1970-01-01
    • 2012-12-11
    • 1970-01-01
    • 2019-11-26
    • 1970-01-01
    • 2021-12-02
    • 2012-04-13
    相关资源
    最近更新 更多