首页 文章

使用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
    

相关问题