作者:马宁
我们的Kinect SDK开发开始渐入佳境了,Skeleton Tracking(骨骼追踪)是Kinect的核心技术,正因为有了这项技术,很多有趣的功能才得以实现。
首先,我们来看一下骨骼追踪的具体实现。Kinect最多可以追踪20个骨骼点,而且目前只能追踪人体,其他的物体或者动物就无能为力了。下图介绍了Kinect骨骼点的分布情况:
初始化代码
接下来,我们来看一下骨骼追踪的代码是如何编写的。首先,我们要创建一个新的Visual C#的工程,叫做“SkeletonTracking”,添加Kinect程序集和Coding4Fun程序集的工作,可以参考上一篇“Kinect for Windows SDK开发初体验(二)操作Camera”的内容,在这里不再重复。
首先我们还是创建Runtime对象,在初始化时,指定UseSkeletalTracking的RuntimeOptions,然后在SkeletonFrameReady事件中添加处理函数。
Runtime nui;
private void Window_Loaded(object sender, RoutedEventArgs e)
{
nui = new Runtime();
nui.Initialize(RuntimeOptions.UseSkeletalTracking);
nui.SkeletonFrameReady += new EventHandler
(nui_SkeletonFrameReady);
}
接下来,窗体关闭时的事件处理函数:
private void Window_Closed(object sender, EventArgs e)
{
nui.Uninitialize();
}
如果这个时候,我们在空的nui_SkeletonFrameReady事件处理函数中,添加一个断点:
void nui_SkeletonFrameReady(object sender, SkeletonFrameReadyEventArgs e)
{
}