获取3帧后,Kinect 2流会卡住 [英] Kinect 2 streams get stuck after fetching 3 frames
本文介绍了获取3帧后,Kinect 2流会卡住的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
我正在使用Kinect v2并且有一个只显示正文和颜色流的小程序,但是在获取
仅3帧后,流停止发送帧。这是代码:
_sensor = KinectSensor.GetDefault();
if (_sensor != null)
{
_sensor.Open();
_reader = _sensor.OpenMultiSourceFrameReader(FrameSourceTypes.Color | FrameSourceTypes.Depth | FrameSourceTypes.Infrared | FrameSourceTypes.Body);
_reader.MultiSourceFrameArrived += Reader_MultiSourceFrameArrived;
}
以下是我如何获取帧
Console.WriteLine("==== FRAME FOUND ====");
var reference = e.FrameReference.AcquireFrame();
// Body
using (var frame = reference.ColorFrameReference.AcquireFrame())
{
if (frame != null)
{
//stream.Children.Clear();
var c_frame = reference.ColorFrameReference.AcquireFrame();
ImageBrush ib = new ImageBrush();
Image im = new Image();
rgb.Source = frame.ToBitmap();
var b_frame = reference.BodyFrameReference.AcquireFrame();
_bodies = new Body[b_frame.BodyFrameSource.BodyCount];
b_frame.GetAndRefreshBodyData(_bodies);
if (_bodies[0].IsTracked)
{
stream.DrawSkeleton(_bodies[0]);
if (recording)
{
recorder.RecordFrame(_bodies[0]);
}
}
b_frame.GetAndRefreshBodyData(_bodies);
}
}
推荐答案
你的逻辑不太正确。
Your logic isn't quite correct.
你是在不释放第一个颜色框架的情况下获取ColorFrame两次。你不应该一个接一个地直接获得两个颜色框架。
You're getting the ColorFrame twice without releasing the first color frame. You shouldn't be getting two color frames directly one after the other either.
这篇关于获取3帧后,Kinect 2流会卡住的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!
查看全文