我正在使用KINECT SDK 1.8,OpenGL和DirectShow制作应用程序。
我的目标是使用KINECT背景去除API提取人类,并使用DirectShow的IVMR9WindowlessControl9:GetCurrentImage将avi视频的帧添加为背景。然后绘制大约1000平方的纹理,这些纹理具有一定的透明度以产生火焰(粒子动力学)。
如果提取的图像的像素的alpha为0,我会添加视频背景。如果像素的alpha为0,我会在其中添加视频帧的像素。
当KINECT没有检测到人类,视频帧的像素填满背景时,火势非常好。
问题在于:当KINECT检测到人类,并且视频帧的像素填充除人类区域以外的背景时,火焰会消失,但是很少有粒子组成火,有时候,其他粒子没有出现当检测到人类出现然后在一瞬间消失。 在KINECT无法检测到人类之后,隐藏的粒子就会出现并且运行得非常好。