使用kinect深度数据查找对象的实际大小

时间:2012-03-12 03:43:13

标签: opencv kinect

我想知道如何使用kinect深度值来计算对象的实际大小。

例如,如果kinect在它前面看到一个圆形物体,而圆形物体在图像中占据100个像素的空间,而kinect给出的深度值是x,我怎么知道它的实际大小圆形物体?

我不需要像米或任何东西这样的单位,我只是想找到一个公式来计算物体的大小,该物体的大小与物体与kinect的距离无关。

我正在使用OpenCV和kinect SDK,如果有什么用处,请告诉我。

提前致谢。

1 个答案:

答案 0 :(得分: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