如何计算物体和相机之间的距离,知道物体在图像分割中所占的像素
How to calculate the distance between object and camera, knowing the pixels occupied by the object in an image- segmentation
通过使用分割,我能够找到图像中对象所占用的像素数。现在我需要使用占用的像素来确定距离。
- 我有对象的原始尺寸 (W x H)
首先,我们假设镜头将图像聚焦平整。
将对象分割出来后,您将得到 W2 x H2,即对象的像素尺寸。
将物体的实际尺寸(宽 x 高)与您的测量尺寸进行比较。拿
%Scale on width axis
W / W2 = s1
%Scale on height axis
H / H2 = s2
%Average both scales
s = (s1 + s2) / 2
s
将是您在 meters/pixel 中测量的体重秤。现在检查图像的总尺寸(以像素为单位),即 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
通过使用分割,我能够找到图像中对象所占用的像素数。现在我需要使用占用的像素来确定距离。
- 我有对象的原始尺寸 (W x H)
首先,我们假设镜头将图像聚焦平整。
将对象分割出来后,您将得到 W2 x H2,即对象的像素尺寸。
将物体的实际尺寸(宽 x 高)与您的测量尺寸进行比较。拿
%Scale on width axis
W / W2 = s1
%Scale on height axis
H / H2 = s2
%Average both scales
s = (s1 + s2) / 2
s
将是您在 meters/pixel 中测量的体重秤。现在检查图像的总尺寸(以像素为单位),即 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