1.3 创建第一个Kinect 项目

原文地址: http://www.cnblogs.com/yangecnu/archive/2012/03/30/KinectSDK_Geting_Started.html。

创建一个Kincet项目通常需要:

1.创建一个VS项目,一般为了展示通常创建一个wpf项目。

2.添加Microsoft.Kinect.dll引用。

3.引入Kinect命名空间。

Kinect编程最需要注意的一点就是:Windows窗体并不像典型程序那样用于处理用户输入,它只用来显示来自于Kinect传感器的输入数据。另一个要注意的是:来自于Kinect的输入是持续不断变化的,一个Kinect程序不会等待诸如点击按钮之类的离散事件,而是持续地处理来自于RGB、深度和骨骼流的信息。

Kinect支持三种类型的托管应用程序:控制台应用程序,WPF以及Windows Form应用程序。

首先来创建一个Windows控制台应用程序,然后添加对Kinect库的引用,如图1-7所示。在Main函数所在的代码中添加Microsoft.Kinect命名空间:

图1-7
图1-7 添加对Kinect库的引用

代码如下:

using System;
using Microsoft.Kinect;

namespace KinectConsole
{
    class Program
    {
        static void Main(string[] args)
        {
            //初始化sensor实例
            KinectSensor sensor = KinectSensor.KinectSensors[0];

            //初始化照相机
            sensor.DepthStream.Enable();
            sensor.DepthFrameReady += new EventHandler<DepthImageFrameReadyEventArgs>(sensor_DepthFrameReady);
            
            // 将字符变成绿色,使之看起来像黑客帝国
            Console.ForegroundColor = ConsoleColor.Green;

            //打开数据流
            sensor.Start();

            // 按空格键可退出程序
            while (Console.ReadKey().Key != ConsoleKey.Spacebar)
            {
            }
        }

        static void sensor_DepthFrameReady(object sender, DepthImageFrameReadyEventArgs e)
        {
            using (var depthFrame = e.OpenDepthImageFrame())
            {
                if (depthFrame == null) 
                    return;
                
                short[] bits = new short[depthFrame.PixelDataLength];
                depthFrame.CopyPixelDataTo(bits);
                foreach (var bit in bits)
                    Console.Write(bit);
            }
        }
    }
}

在上面的代码中,为了从摄像头中获取数据流,需要初始化KinectSensor 对象,然后启动他。为了获取景深数据,我们给sensor的DepthFrameReady 注册了事件。上面的代码中数据通过DepthFrameReady事件触发。在Kinect应用中,这些获取数据的事件有DepthFrameReadyColorFrameReady以及SkeletonFrameReady。可以通过这些事件获取丰富的数据来完成各种有趣的应用。

在上面的代码中,我们简单的将景深摄像头获取的数据输出打印到控制台上。运行程序,然后站在Kinect前面一段距离,你就会看到控制台上输出的信息,如下图所示。按空格键可以退出这个程序。

程序截图
程序截图

源代码下载

文件下载(已下载 1929 次)

发布时间:2013/2/11 下午10:31:01  阅读次数:8283

2006 - 2024,推荐分辨率 1024*768 以上,推荐浏览器 Chrome、Edge 等现代浏览器,截止 2021 年 12 月 5 日的访问次数:1872 万 9823 站长邮箱

沪 ICP 备 18037240 号-1

沪公网安备 31011002002865 号