首页 > 解决方案 > 如何计算物体和相机之间的距离,知道物体在图像分割中占据的像素

问题描述

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

标签: imageimage-processingcomputer-visionimage-segmentation

解决方案


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

分割出对象后,您将获得 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

推荐阅读