使用Kinect深度数据查找物体的实际大小

4

我想知道如何通过Kinect的深度值来确定物体的实际尺寸。

例如,如果Kinect在其前面看到一个圆形物体,并且该圆形物体在图像中占据了100个像素,并且Kinect给出的深度值为x,那么我将如何知道圆形物体的实际大小?

我不需要以米或其他任何单位表示,我只是想找到一种独立于物体距离Kinect的公式来计算物体的大小。

我正在使用OpenCV和Kinect SDK,如果有用的信息,请告诉我。

提前致谢。

1个回答

2

要在3D中找到尺寸,给定2D中的尺寸,只需执行以下操作:

3d_rad = 2d_rad * depth

如果屏幕上的球看起来宽度为10像素,距离为1米,那么实际上它的宽度是10个“单位”。尝试一下来找出返回的单位,我不确定它们会是什么。

假设在屏幕上有一个半径为20像素的球,并且深度返回值为30,则球的实际大小为20*30 = 600个单位。同样,我不确定具体的单位,这取决于相机,但它是一个常数,可以进行尝试。将一个1米的球放在相机前面,远到足以看起来像100个像素。该距离的倒数应该是将你所拥有的单位转换为厘米的转换因子,并可用作常数。例如:

3d_rad_in_cm = conversion * 2d_rad * depth

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接