我正在使用ofxKinect插件在openframework中使用kinect,这很棒且很有趣!
无论如何,当我在屏幕上处理多个实体时,我正在寻找一些指针或方向。我想在每个被检测到的身体周围制作一个矩形,当这些物体交叉时,可能会发生某种情况,一种效果或其他任何因素。
所以我正在寻找的是想法或某些东西可以指出我在使用kinect时检测多个物体的正确方向。
现在基于我从kinect获得的深度图像,我遍历每个像素并创建一堆带有填充的较小矩形,如果它们与另一个矩形组分开,则将它们分组在一个更大的矩形边界中。这不是理想的,因为它只处理像素值,而不是真正分离彼此的身体,并没有给我我想要的结果。
所以任何想法都会非常感激!
答案 0 :(得分:1)
如果你想使用xKinect,快速解决方案将是深度阈值并假设实体,其他对象不在深度范围内。这样可以很容易地使用OpenCV的轮廓查找器来隔离主体的轮廓并获得边界矩形。如果矩形相交(并且ofRectangle已经对数学进行了计数),则触发您需要的反应。如果效果未显示,也不要忘记执行此操作,否则当两个实体的边界矩形相交时,您将每秒多次触发效果。
您可以尝试更多核心内容并使用ofxCv(而不仅仅是ofOOpenCV)来使用HoG功能。这本身很慢,并且对于深度贴图来说并不理想,但希望您可以每隔几秒钟运行一次以检测人和深度,然后继续跟踪该运动。
就个人而言,如果您想使用Kinect跟踪人物,我建议您使用ofxOpenNI,就好像已经提供了场景分割功能一样,即使您没有跟踪骨架,您仍然可以获得有用的信息,例如相关的像素到每个身体,他们是质量的中心。我猜微软KinectSDK有一个类似的功能,应该有一个oF插件,但它只是windows。
ofxKinect / libfreenect不提供任何人物检测功能,因此您需要自己动手。