Kinect 开发 —— Hello,Kinect

控制台输出深度数据:

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using Microsoft.Kinect;

namespace HelloKinectMatrix
{

    class Program
    {
        static void _kinect_DepthFrameReady(Object sender, DepthImageFrameReadyEventArgs e)
        {
            // 获取Kinect深度数据,并将深度值打印到控制台上
            using(DepthImageFrame depthFrame=e.OpenDepthImageFrame())
            {
                if(depthFrame!=null)
                {
                    short[] depthPixelData = new short[depthFrame.PixelDataLength];
                    depthFrame.CopyPixelDataTo(depthPixelData);

                    foreach (short pixel in depthPixelData)
                    {
                        Console.Write(pixel);
                    }
                }
            }
        }
        static void Main(string[] args)
        {

            if (KinectSensor.KinectSensors.Count>0)
            {
                // 设置控制台前景色
                Console.ForegroundColor = ConsoleColor.Green;
                Console.WriteLine("Welcome to the Kinect Matrix ... ");

                // 默认选择第一个Kinect传感器
                KinectSensor _kinect = KinectSensor.KinectSensors[0];

                _kinect.DepthStream.Enable();
                _kinect.DepthFrameReady += new EventHandler<DepthImageFrameReadyEventArgs>(_kinect_DepthFrameReady);
                _kinect.Start();

                // 按回车键退出
                while (Console.ReadKey().Key != ConsoleKey.Enter)
                {
                }

                // 关闭Kinect传感器
                _kinect.Stop();
                Console.WriteLine("Exit the Kinect Matrix ... ");
            }
            else
            {
                Console.WriteLine("Please check the kinect sensor ");
            }
            
        }
    }
}

还是对C#很不熟悉,知道每条代码的含义,但自己写不出来 —— 缺乏整体架构

posted @ 2014-07-05 10:00  老姨  阅读(484)  评论(0编辑  收藏  举报