基本上,我只想要这三样东西。
颜色、深度和骨架。但我也希望深度和颜色对齐。
我知道在官方示例中,有 GreenScreen.cpp,它是深度/颜色剪切的示例,但没有骨架。还有 SkeletonBasics,它有一个骨架,但没有图像。
我已经尝试向他们学习并一起实现它们,但是当骨架准备好时我从来没有收到回调(这个:m_hNextSkeletonEvent)。
SkeletonBasics.cpp 使用这个:
hEvents[0] = m_hNextSkeletonEvent;
// Check to see if we have either a message (by passing in QS_ALLEVENTS)
// Or a Kinect event (hEvents)
// Update() will check for Kinect events individually, in case more than one are signalled
DWORD dwEvent = MsgWaitForMultipleObjects(eventCount, hEvents, FALSE, INFINITE, QS_ALLINPUT);
// Check if this is an event we're waiting on and not a timeout or message
if (WAIT_OBJECT_0 == dwEvent)
{
Update();
}
GreenScreen.cpp 使用这个:
hEvents[0] = m_hNextDepthFrameEvent;
hEvents[1] = m_hNextColorFrameEvent;
// Check to see if we have either a message (by passing in QS_ALLINPUT)
// Or a Kinect event (hEvents)
// Update() will check for Kinect events individually, in case more than one are signalled
DWORD dwEvent = MsgWaitForMultipleObjects(eventCount, hEvents, FALSE, INFINITE, QS_ALLINPUT);
// Check if this is an event we're waiting on and not a timeout or message
if (WAIT_OBJECT_0 == dwEvent || WAIT_OBJECT_0 + 1 == dwEvent)
{
Update();
}
但是,就像我说的,将它们结合起来不会产生
如果(WAIT_OBJECT_0 == WaitForSingleObject(m_hNextSkeletonEvent,0))
正在发生。(KinectBridgeWithOpenCVBasics-D2D 也有骨架、颜色和深度,但仍然是未对齐的(就像我在搜索中找到的这个例子)。
你知道为什么事件没有触发吗?或者您是否知道某个地方拥有所有这些能力的例子?我搜索了高低,我尝试了很多不同的东西来弄乱这些例子,但我似乎无法理解。
谢谢你的帮助。
编辑:在 KinectBridgeWithOpenCVBasics 结束时,我留下了一个 m_colorMat 和一个 m_depthMat。即使那时我可以将深度与颜色对齐,我认为这会很好。