Asd*_*Asd 3 tracking kinect openni
我正在使用用户跟踪:我已经注册了回调(User_NewUser,User_LostUser,Pose_Detected,Calibration_Start,Calibration_End).当我进入传感器区域时,我以正确的方式检测和校准.但是当我离开传感器区域(并且没有其他人在里面)时,我希望程序调用回调"User_LostUser",但似乎没有这样做.(事实上,当我再次进入时,传感器仍然跟踪我!)我希望当用户离开场景时,程序取消注册/删除他并重新启动以检查新用户:有人可以帮助我吗?
void XN_CALLBACK_TYPE User_LostUser(xn::UserGenerator& generator, XnUserID nId,
void* pCookie) {
generator.GetPoseDetectionCap().StopPoseDetection(nId);
generator.GetPoseDetectionCap().Release();
generator.GetPoseDetectionCap().StartPoseDetection("Psi", nId);
}
Run Code Online (Sandbox Code Playgroud)
OpenNI(实际上是NITE)会在离开现场后继续跟踪你几秒钟.如果你稍等一下,你最终应该得到LostUser回调.
话虽如此,如果您想要检测用户自己离开场景,您可以获得用户质量中心(使用UserGenerator :: GetCoM).当用户离开场景时,质心将是0,0,0.