控制台输出深度数据:
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#很不熟悉,知道每条代码的含义,但自己写不出来 —— 缺乏整体架构