4

我目前正在尝试找出一种使用 kinect 计算给定对象大小的方法

因为我有以下数据

800*600 分辨率下的镜头距离和宽度(以像素为单位)的视场角

我相信这是可以计算出来的。有没有人有数学技能可以给我一点帮助?

4

1 回答 1

3

通过一些三角学,应该可以近似。

如果你画一个直角三角形ABC,相机在一条腿(A),物体在远端(边BC),直角是(C),那么物体的高度将是为腿 BC 的高度。到像素的距离可能是腿 AC 或 AB 的距离。Kinect 传感器规格将对此进行规范。如果你得到一个像素中心的距离,那么它将是AC。如果您与像素角有距离,那么距离将为 AB。

用 A 表示像素在相机上的角度,d 是直角斜边的距离,y 是远腿(边 BC)的距离:

sin(A) = y / d

y = d sin(A)

y 是投影到物平面的像素长度。你可以通过将天使的罪孽乘以到物体的距离来计算它。

在这里我承认我不知道 kinect 的 API,以及它提供的详细程度。你说你有视野的角度。您可能会假设 800x600 像素网格的每个像素占据相机视野的相同角度。如果这样做,那么您可以将该视野分成相等的部分,以测量每个像素中对象的线性大小。

您还提到您与物体的距离。我假设您对 800x600 网格的每个像素都有一个距离图。如果这是不正确的,如果您对正在测量的对象做出一些假设,则可以进行一些计算来近似涉及感兴趣对象的像素的距离网格。

于 2011-08-12T14:06:42.473 回答