博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
视频数据:深度数据采集(Depth Data)
阅读量:5748 次
发布时间:2019-06-18

本文共 1563 字,大约阅读时间需要 5 分钟。

深度数据是利用红外发射摄像头发射红外线,用红外接收摄像头接收红外线而形成的图像,在利用发射接收差来计算深度距离,从抓取的图像中我们可以看出,红外图像是有远近梯度的。

新建一个WPF项目,在窗体中添加一个Image控件,Name为img。

后台代码如下:

 
  1. //Kinect对象  
  2. KinectSensor kinectsensor = null;  
  3. private void Window_Closing(object sender, System.ComponentModel.CancelEventArgs e)  
  4. {  
  5.     if (kinectsensor.Status == KinectStatus.Connected)  
  6.     {  
  7.         kinectsensor.Stop();//停止Kinect  
  8.     }  
  9. }  
  10. private void Window_Loaded(object sender, RoutedEventArgs e)  
  11. {  
  12.     foreach (KinectSensor ks in KinectSensor.KinectSensors)  
  13.     {  
  14.         if (ks.Status == KinectStatus.Connected)  
  15.         {                      
  16.             kinectsensor = ks;  
  17.             //设置深度数据流采集参数  
  18.             kinectsensor.DepthStream.Enable(DepthImageFormat.Resolution640x480Fps30);  
  19.             //订阅深度数据流采集事件  
  20.             kinectsensor.DepthFrameReady += kinectsensor_DepthFrameReady;  
  21.             kinectsensor.Start();//启动Kinect  
  22.             this.Title = "Kinect开始工作……";  
  23.             return;  
  24.         }  
  25.     }  
  26. }  
  27. private DepthImagePixel[] depthPixels;//定义字节数组  
  28. private WriteableBitmap DepthBitmap;//定义位图  
  29. void kinectsensor_DepthFrameReady(object sender, DepthImageFrameReadyEventArgs e)  
  30. {              
  31.     using (DepthImageFrame depframe = e.OpenDepthImageFrame())  
  32.     {  
  33.         if (depframe != null)  
  34.         {  
  35.             //初始化字节数组  
  36.             depthPixels = new DepthImagePixel[kinectsensor.DepthStream.FramePixelDataLength];  
  37.             //把深度数据复制到数组中  
  38.             depframe.CopyDepthImagePixelDataTo(depthPixels);  
  39.             //实例化位图对象  
  40.             this.DepthBitmap = new WriteableBitmap(kinectsensor.DepthStream.FrameWidth, kinectsensor.DepthStream.FrameHeight, 96.0, 96.0, PixelFormats.Bgr32, null);  
  41.             //用字节数组数据绘位图  
  42.             this.DepthBitmap.WritePixels(new Int32Rect(0, 0, DepthBitmap.PixelWidth, DepthBitmap.PixelHeight), depthPixels, DepthBitmap.PixelWidth * sizeof(int), 0);  
  43.             //显示位图到图片控件上  
  44.             img.Source = DepthBitmap;  
  45.         }  
  46.     }  
  47. }  

效果如下图:

 

转载地址:http://zwhzx.baihongyu.com/

你可能感兴趣的文章
php过滤所有英文中文的标点符号代码
查看>>
ssh+chroot -- 给ssh上把锁
查看>>
C语言通过串口发送AT指令
查看>>
Mac上php和mysql的安装以及一些配置问题解决
查看>>
如何做项目或软件产品计划
查看>>
基于Metronic的Bootstrap开发框架经验总结(1)-框架总览及菜单模块的处理
查看>>
CentOS 在编译php 的时候可能出现的错误以及需要安装的类库
查看>>
在以TCP为连接方式的服务器中,为什么在服务端设计当中需要考虑心跳?
查看>>
[阅读笔记]王坚对话CIO:揭开企业“去IOE”的实质
查看>>
如何让你的网页打开速度降低到 1s 内
查看>>
Linux中的用户和组及其权限管理
查看>>
java和UML-2-面向对象
查看>>
从问题看本质: 研究TCP close_wait的内幕
查看>>
CentOS -- YUM服务器搭建(一)_光盘挂载方式
查看>>
Class.forName和ClassLoader.loadClass区别
查看>>
交互式Ruby解释器:irb
查看>>
一共81个,开源大数据处理工具汇总(上)
查看>>
文件服务器文件夹,共享文件夹及权限迁移
查看>>
玩转grub加密
查看>>
VMware Virtual SAN:见证组件部署逻辑
查看>>