Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/cassandra/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Computer vision Kinect作为运动传感器_Computer Vision_Kinect_Motion Detection - Fatal编程技术网

Computer vision Kinect作为运动传感器

Computer vision Kinect作为运动传感器,computer-vision,kinect,motion-detection,Computer Vision,Kinect,Motion Detection,我计划创建一个应用程序,它可以执行以下操作: 这意味着,我希望能够使用Kinect及其3d图像设置“触发区”。现在我知道微软声称Kinect可以检测多达6个人的骨骼。 然而,对我来说,它足以检测是否有东西正在进入触发区以及在哪里 有人知道Kinect是否可以编程为一个简单的运动传感器,因此它可以检测6个以上的条目吗?众所周知,Kinect检测不到5个以上的条目(只是开玩笑而已)。您只需从Kinect获取深度贴图(z贴图),然后使用这些公式将其转换为3d贴图 X = (((cols - cap_w

我计划创建一个应用程序,它可以执行以下操作:

这意味着,我希望能够使用Kinect及其3d图像设置“触发区”。现在我知道微软声称Kinect可以检测多达6个人的骨骼。 然而,对我来说,它足以检测是否有东西正在进入触发区以及在哪里


有人知道Kinect是否可以编程为一个简单的运动传感器,因此它可以检测6个以上的条目吗?

众所周知,Kinect检测不到5个以上的条目(只是开玩笑而已)。您只需从Kinect获取深度贴图(z贴图),然后使用这些公式将其转换为3d贴图

X = (((cols - cap_width) * Z ) / focal_length_X);
Y = (((row - cap_height)* Z ) / focal_length_Y);
Z = Z; 
其中,行和列是从图像中心(不是左上角!)计算的,焦距是Kinect的焦距,单位为像素(~570)。现在,您可以在3D中指定像素出现的确切位置,您可以做任何您想做的事情。以下是更多的提示:

  • 为了便于可视化,可以使用openCV。要在Kinect初始化后从其读取帧,您只需要以下内容:

    Mat inputMat=Mat(h,w,CV_16U,(void*)深度_gen.GetData())

  • 您可以轻松地使用可视化深度贴图(它将在可用的255个灰度级别中以最佳方式分布10000个Kinect级别)

  • 有时需要将具有相似深度的空间相近像素分组在一起进行对象分割。我在几年前就这样做了,但是必须删除对象所在的地板和/或公共曲面,否则所有对象都将连接并提取为单个大段