Мне сложно понять, что на самом деле происходит, когда kinect используется с медленными компьютерами или требуются тяжелые вычисления в рамке.Механика Kinect: куда уходят рамы? - случай с частотой кадров
Давайте рассмотрим C# sample code для восстановления глубины.
Динамика времени исполнения определяется событием DepthFrameReady
. Сообщаемая здесь функция DepthImageReady
вызывается при срабатывании такого события.
private void DepthImageReady(object sender, DepthImageFrameReadyEventArgs e)
{
using (DepthImageFrame depthFrame = e.OpenDepthImageFrame())
{
if (depthFrame != null)
{
depthFrame.CopyDepthImagePixelDataTo(this.depthPixels);
//MY OPERATIONS BLABLABLA...
}
else
{
// depthFrame is null because the request did not arrive in time
}
}
}
Мой кросс-коррелируют вопросы:
- Является ли эта функция на самом деле вызывается для каждого кадра?
- Почему такое
depthFrame
может бытьNull
? - Что действительно происходит, если мои операции занимают больше времени, чем номинальное межкадровое время (33 мс)?
- Есть ли какой-либо буфер внутри kinect?
Любая помощь оценивается.
«Где пропадают рамки?» Конечно, Тумболии. – Ben