Kinect调查报告(二)
来源:互联网 发布:linux 调用.so 参数 编辑:程序博客网 时间:2024/04/29 02:16
深度信息
微软的深度信息是来自主动探测(相对mark等方法而言),既发射一级镭射(镭射,也就是激光,快跑!其实也就是红外线,这种级别连细菌都杀不死,对人体无害。人看不到它,蚊子表示毫无压力,所以也就有了红外线驱蚊装置)在场景中形成散斑-Laser Speckle; 将整个空间加上了标记。Kinect采用近红外线(医学上把红外线分为近红外和远红外)对测量空间进行编码,经感应器读取编码的光线,交由晶片运算进行解码后,产生成一张具有深度的图像。
好吧,直入正题。根据项目的要求,你可能需要带玩家索引的深度图或者不带玩家的深度图。初始化为NUI_INITIALIZE_FLAG_USES_DEPTH_AND_PLAYER_INDEX状态就是带玩家索引状态,这时微软为你提取出场景中的人的位置(像素位置)。初始化为NUI_INITIALIZE_FLAG_USES_DEPTH 状态就是纯深度图,如果你想在后者状态下找玩家,对不起,不可以,你以为微软有这么智能么?Kinect很委屈,你都没初始化我带玩家索引,你还让我提取玩家?每个像素(空间位置)的深度信息用16位的USHORT类型表示,上面讨论的带不带玩家索引就在这个16位数据上体现。带玩家索引的数据,高13位表示深度(距离)信息,低3位表示玩家索引(为什么要低3位代表人?歧视?),如果要提取深度信息,那你就对这个数据进行移位操作呗。怎么移位?你猜!
深度数据的取值范围是 0.8~3.84米。如果脱离这个范围,值则为0。另外,光照对数据有效性有影响,特别是发光反光(玻璃)的物体和头发(松软有间隙)对深度信息探测影响很大。
前不久,遇到一哥们纠结与深度图和灰度图的问题。应该是先有的深度图(场景物体到Kinect的距离),你想怎么把这个距离信息可视化显示出来呢?灰度图可以,伪彩色也可以啊,why not? 当然了,灰度图只有256个级差,伪彩色有更多的选择。请看下面的伪彩图
微软说精度是1mm,如果抖动的数据也算的话,我就不说什么了。在这里也有一个小技巧,你可以用一个灰度级表示5毫米,这样灰度图也可以表示256*5mm
看了下面的视频,你会对微软对深度信息的获取有更深更直观的理解。
http://static.youku.com/v1.0.0202/v/swf/loader.swf?VideoIDS=XMjIwMTM4NDE2&embedid=MTE1LjI0LjI0MC4xNjUCNTUwMzQ2MDQCd3d3Lnhib3gtc2t5ZXIuY29tAi9zaG93dGhyZWFkLnBocA%3D%3D
- Kinect调查报告(二)
- Kinect调查报告(一)
- Kinect NUI 概述(二)
- 2014 iOS开发者收入调查报告(二):企业开发者篇
- 微信小程序调查报告(二)-账号注册篇
- kinect读取骨骼点数据(二)
- Kinect开发学习笔记之(二)Kinect开发学习资源整理
- Kinect开发学习笔记之(二)Kinect开发学习资源整理 (转)
- Kinect开发学习笔记之(二)Kinect开发学习资源整理
- 【Kinect开发笔记之(二)】Kinect for windows发展历程
- 【Kinect开发笔记之(二)】Kinect for windows发展历程
- Kinect开发学习笔记之(二)Kinect开发学习资源整理
- Kinect开发学习笔记之(二)Kinect开发学习资源整理
- Kinect 学习之旅(二)----设置开发环境
- 利用Kinect SDK做Face Tracking(二)
- Kinect视频的保存和回放(二)
- kinect编程(二):添加事件处理,捕捉数据
- Kinect结合Unity3D引擎开发体感游戏(二)
- 程序员修炼之路(五)李开复:算法的力量|万变不离其宗
- java对象序列化的概念和实现
- ArcGIS Engine10.0轻松入门级教程(4)——基本功能开发
- 句柄
- Delphi发展历程
- Kinect调查报告(二)
- linux设备驱动之I/O端口与I/O内存
- 通过函数参数获取新创建指针的三种方法
- java函数参数中:用参数值带回结果(类似传址)
- 多进程、多线程、多任务(windows vs linux)
- 优秀网游的几点要素
- IP数据报的分片与重组分析
- poj 2482 java
- 域管理环境中进行软件的推送安装