C#中配置kinect以及使用
网上C++与kinect之间配置文章很多,但C#相关资料很少,这里说明其之间的配置以及如何调用。
首先下载kinect2.0SDK,下载地址 http://pan.baidu.com/s/1hsFqGPe。
下载完成后打开VS,点击添加引用
后点击搜索
这时,在代码中添加 using Microsoft.Kinect即完成kinect环境的配置,下面测试配置是否完成。
上一个控制台代码,新建控制台程序将此代码拷贝进去测试配置是否完成。
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using Microsoft.Kinect;
using System.Threading.Tasks;
namespace CsharpKinect
{
class Program
{
static void Main(string[] args)
{
//控制台背景色
Console.ForegroundColor = ConsoleColor.DarkGreen;
KinectSensor kinectSensor = KinectSensor.GetDefault();//获得传感器
//开帧阅读
DepthFrameReader depthFrameReader = kinectSensor.DepthFrameSource.OpenReader();
//开帧描述
FrameDescription depthFrameDescription = kinectSensor.DepthFrameSource.FrameDescription;
//帧到达
depthFrameReader.FrameArrived += depthFrameReader_FrameArrived;
kinectSensor.Open();
while(Console.ReadKey().Key!=ConsoleKey.Enter)
{
}
kinectSensor.Close();
}
static void depthFrameReader_FrameArrived(object sender, DepthFrameArrivedEventArgs e)
{
using (DepthFrame df = e.FrameReference.AcquireFrame())
{
if (df != null)
{
ushort[] dfdata = new ushort[512 * 424];
df.CopyFrameDataToArray(dfdata);
int i = 0;
foreach(short pix in dfdata)
{
Console.Write("第"+i + "个:");
Console.Write(pix);
i++;
}
}
}
}
}
}
测试打印深度数据,与C++大体相似:reader->Descripion->Sendor等。