显示深度数据流的步骤与显示彩色图像的步骤基本一样。所以,这里就只说源码中不一样的地方。具体源码参考显示彩色图像数据流。
**显示深度图像与显示彩色图像源码的不同点
1、在上一篇的“3、在WPF里添加必要的属性和元素.”中,把
<Image Name="ColorName" Height="480" Width="640"/>
中的”ColorName”——>”DepthName”。
其实不改也行,只是这样更直观。
2、在上一篇的“4、源码解读”中,把第34行的:
private byte[] colorPixelData;
改为:
private short[] depthPixelData;
3、在上一篇的“4、源码解读”中,把第43和45行的:
kinectSensor.ColorStream.Enable(ColorImageFormat.RgbResolution1280x960Fps12)
kinectSensor.ColorFrameReady += kinectSensor_ColorFrameReady
分别改为:
kinectSensor.DepthStream.Enable(DepthImageFormat.Resolution640x480Fps30)
kinectSensor.DepthFrameReady += kinectSensor_DepthFrameReady
4、在上一篇的“4、源码解读”中,把第51~66行改为:
void kinectSensor_DepthFrameReady(object sender, DepthImageFrameReadyEventArgs e)
{
using (DepthImageFrame depthImageFrame = e.OpenDepthImageFrame())
{
if (depthImageFrame != null)
{
depthPixelData = new short[depthImageFrame.PixelDataLength];
depthImageFrame.CopyPixelDataTo(depthPixelData);
ColorName.Source = BitmapSource.Create(depthImageFrame.Width, depthImageFrame.Height, 96, 96,
PixelFormats.Gray16, null, depthPixelData, depthImageFrame.Width * 2);
}
}
}
到此,就OK了,其他的不用改动!
运行结果如下图所示: