kinect 开发笔记

来源:互联网 发布:重启网卡 linux 编辑:程序博客网 时间:2024/06/09 18:18
 


kinect of windows sdk 微软已经发布,
而且网上有人已经针对Kinect的USB驱动程序,提供了OpenKinect

如下是在下的摸索开发心得

准备工作 Vs 2011,Win 7,.Net Framework 4.0

下载 sdk

1 硬件安装 (USB连接到PC)
Kinect和AC Adapter/ Power Supply
2 Kinect SDK安装 (下一步到底)

3. 环境测试
 Kinect SDK安装完成后,我们将Kinect转接口的USB接口插入到PC中。PC会发现新硬件,并且自动查找驱动程序安装。
 Xbox NUI Audio 不正常,忽略
4 打开Kinect SDK中自带的Sample Skeletal Viewer就可以很方便地检测Kinect设备是否与PC已经连接好了
---------------

获取Camer和Sensor

A)开始开发

1. 创建WPF或者windows form平台框架, XNA框架也可以。 silverLight还没人成功过
2. 引用Kinect程序集
   Microsoft.Research.Kinect
3. 引入Coding4Fun
   Coding4Fun.Kinect.WPF...
4. MainWindow.xaml,添加2个Image控件(用于RGB图片和Depth信息)
5. MainWindow.xaml.cs中,
using Microsoft.Research.Kinect.Nui;
using Microsoft.Research.Kinect.Audio;
using Coding4Fun.Kinect.Wpf;

6. 事件中找到 Loaded和Closed 方法,分别双击,添加事件

声明 Runtime nui,

Loaded(...)
{//初始化Runtime的代码
 nui = new Runtime();
 nui.Initialize(RuntimeOptions.UseColor| RuntimeOptions.UseDepth | RuntimeOptions.UseDepthAndPlayerIndex | RuntimeOptions.UseSkeletalTracking);
}

Closed(...)
{//关闭Runtime的代码
  nui.Uninitialize();
}

备注: Runtime是KinectSDK中,最主要的类,
Kinect所有的操作,有Runtime类进行封装
构造函数无参,但有个显式的初始化函数Initialize,指定将调用Kinect中的哪些功能

RuntimeOptions.UserColor
RuntimeOptions.UseDepth
RuntimeOptions.UseSkeletalTracking 骨骼追踪
RuntimeOptions.UseDepth And PlayerIndex
使用深度和播放机指数

--
过RGB Camera来获取实时的图像数据
nui.VideoFrameReady += new EventHandler<ImageFrameReadyEventArgs>(nui_VideoFrameReady);
void nui_VideoFrameReady(object sender, ImageFrameReadyEventArgs e)
{
PlanarImage imageData = e.ImageFrame.Image;
image1.Source = BitmapSource.Create(imageData.Width, imageData.Height, 96, 96,
PixelFormats.Bgr32, null, imageData.Bits, imageData.Width * imageData.BytesPerPixel);
//image1.Source = e.ImageFrame.ToBitmapSource();
}

 

 

 

 


 

原创粉丝点击