kinect二次开发_Kinect SDK 学习(1)

1. 数据流概述:

图像数据流定义:一组连续静止图像帧的集合

应用程序根据NUI API提供的相关设置选项,可以获得不同质量、格式和带宽的图像数据,包括彩色图和深度图两种。

从sensor中可以访问以下几种数据流:

* 彩色图像数据

* 深度图像数据

* 用户分割数据(由深度流二次开发而成)

1.1 用户分割数据

要想实现骨骼追踪,第一步应该是将用户从整个背景图像中分割出来。用户分割数据属于深度数据的一部分

* 深度图像的每个像素由2字节,共16位组成

* 每个像素数据的前13位代表人体到相机红外摄像头平面的垂直距离,以mm为单位

* 像素数据的最后三位表示用户ID索引号(BodyId);

如果索引号为0,表示在该位置下没有找到用户,此时深度距离显示为0;

543fff7b7423

图1:用户分割数据示意图

1.2 深度图像数据

深度图像数据也是由连续的深度图像帧组成。每一个像素点数据代表物体到红外摄像头光心平面的垂直距离,以mm为单位。

如果一点的深度值为0,代表该点的深度值不确定,可能是离相机太近或太远。同样的,深度图像像素数据的前13位代表距离,后三位代表用户索引号。

2. 如何获取数据流

2.1 轮询模型

轮询模型(polling model)是最简单的读取数据帧的方法。首先开启图像数据流,然后请求帧数据并设置等待时间T(ms)。如果帧数据尚未就绪,则系统等待时间T后范围;如果帧数据准备就绪,则程序可以请求下一帧数据。

轮询模型是一种“拉”的方式,程序会在T时间内一直检查是否有帧数据,如果有则加载

请求深度图像帧: DepthImageStream.OpenNextFrame(T)

2.2 事件模型(*)

通过注册数据流的on_frame_ready函数。每当on_frame_ready触发,则获取数据帧

需要注意的是:不能对同一数据流同时使用这两种调用方法

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值