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

Opencv 使用kinect深度数据查找对象的实际大小,opencv,kinect,Opencv,Kinect,我想知道如何使用kinect深度值计算出对象的实际大小 例如,如果kinect看到前面有一个圆形对象,圆形对象在图像中占据100像素的空间,kinect给出的深度值是x,我如何知道圆形对象的实际大小 我不需要用米或其他单位,我只是想找到一个公式来计算物体的大小,这个公式与物体离kinect的距离无关 我正在使用OpenCV和kinect SDK,如果有什么有用的,请告诉我 提前感谢。要在3d中查找尺寸,给定2d中的尺寸,只需执行以下操作: 3d_rad = 2d_rad * depth 因此,

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

例如,如果kinect看到前面有一个圆形对象,圆形对象在图像中占据100像素的空间,kinect给出的深度值是x,我如何知道圆形对象的实际大小

我不需要用米或其他单位,我只是想找到一个公式来计算物体的大小,这个公式与物体离kinect的距离无关

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


提前感谢。

要在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