Kinect入门(2)——显示深度图像数据流

显示深度数据流的步骤与显示彩色图像的步骤基本一样。所以,这里就只说源码中不一样的地方。具体源码参考显示彩色图像数据流

**显示深度图像与显示彩色图像源码的不同点

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)
                {
                    //1、用来存储彩色像素的数组(BGRA BGRA BGRA BGRA BGRA)
                    depthPixelData = new short[depthImageFrame.PixelDataLength];
                    //2、把彩色数据帧中的彩色像素复制到:colorPixelData
                    depthImageFrame.CopyPixelDataTo(depthPixelData);
                    //3、将彩色像素数据赋给画布上Name=ColorName的Image元素
                    ColorName.Source = BitmapSource.Create(depthImageFrame.Width, depthImageFrame.Height, 96, 96,
                                      PixelFormats.Gray16, null, depthPixelData, depthImageFrame.Width * 2);
                }
            }
        }

到此,就OK了,其他的不用改动!

运行结果如下图所示:

Kinect显示深度图像

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值