技术开发 频道

Kinect for Windows SDK开发应用初体验

24 - Copy

  上面的示例代码,没有使用Coding4Fun的Helper类,如果使用的话,则代码如下:

  void nui_VideoFrameReady(object sender, ImageFrameReadyEventArgs e)

  {

  image1.Source
= e.ImageFrame.ToBitmapSource();

  e.ImageFrame.ToBitmapSource().Save(
"catpure.jpg", ImageFormat.Jpeg);

  }

  Helper类使用了C#的Extension Methods,为ImageFrame增加了一些转换方法。我们还可以将图像保存为文件,考虑到文件系统存储的效率文件,建议大家不用每张都存。

  获取Depth信息

  接下来我们要获取Depth信息了,过程与RGB Camera类似。首先要确保Runtime对象被初始化时,已经添加了RuntimeOptions.UseDepth的属性,否则设备无法正常打开。

  然后,添加获取Depth数据的事件处理,并打开Depth的数据流,这次的分辨率是320x240:

  nui.DepthFrameReady += new EventHandler(nui_DepthFrameReady);

  nui.DepthStream.Open(ImageStreamType.Depth,
2, ImageResolution.Resolution320x240, ImageType.Depth);

  下面是事件处理函数,在另外一个Image函数里,显示Depth图像:

  void nui_DepthFrameReady(object sender, ImageFrameReadyEventArgs e)

  {

  image2.Source
= e.ImageFrame.ToBitmapSource();

  }

  偷懒,所以使用了Coding4Fun的Helper类。程序运行的效果如下:

24

  写到最后

  这一篇中,我们完成了Kinect开发环境的配置、添加了Coding4Fun Kinect Toolkit、从RGB Camera和Depth Sensor中获取了图像信息。

  接下来,我们就要进入Kinect动作捕捉部分了。

0
相关文章