void Reader_MultiSourceFrameArrived(object sender, MultiSourceFrameArrivedEventArgs e)
{
var reference = e.FrameReference.AcquireFrame();
using (var colorFrame = reference.ColorFrameReference.AcquireFrame())
using (var depthFrame = reference.DepthFrameReference.AcquireFrame())
using (var bodyIndexFrame = reference.BodyIndexFrameReference.AcquireFrame())
{
if (colorFrame != null && depthFrame != null && bodyIndexFrame != null)
{
// 3) Update the image source.
camera.Source = _backgroundRemovalTool.GreenScreen(colorFrame, depthFrame, bodyIndexFrame);
}
}
}
MainWindow中主要就是backgroundRemovalTool这个类在起到去除背景的作用。
代码中主要有以下几个类:
WriteableBitmap _bitmap: 带有裁剪背景的最终图像
ushort[] _depthData: 深度帧的深度值
byte[] _bodyData: 有关站在传感器前面的身体的信息
byte[] _colorData: 颜色框的R