kinect 2获取数据流程介绍(强烈推荐入门新手)
原文链接:
Kinect V2开发(2)从Kinect获取数据
学习Kinect 2需要参看许多程序样例,这篇文章可以帮助新手更快地看懂关于kinect学习的程序样例。
在Kinect for windows SDK2.0中,Kinect有多种类型的数据源,每个类型的数据都有三个类与之对应:Source,Reader和Frame。例如,要读取骨架,就有IBodyFrameSource, IBodyFrameReader, IBodyFrame这三个类,要读取深度数据,就有IDepthFrameSource, IDepthFrameReader, IDepthFrame这三个类,以此类推其他的如Body Index,Infrared,Color数据也是这样命名的。
在Kinect for windows SDK2.0中,获取并处理数据源接口步骤如下:
Sensor -> Source -> Reader -> Frame -> Data
1.Sensor
GetDefaultKinectSensor()
这个函数用来获取预设的感应器,括号里填自己的预设名字就可以,然后就可以设置传感器的状态。
eg:
GetDefaultKinectSensor(&IKinectSensor); //获取感应器 IKinectSensor->Open(); //打开感应器
2.Source
在IKinectSensor下,有这样一些函数成员,通过调用它们,可以获取相应的数据。
IKinectSensor (对应到感应器)
get_DepthFrameSource() -> IDepthFrameSource (深度图像来源)
get_ColorFrameSource() -> IColorFrameSource (彩色图像来源)
get_InfraredFrameSource() -> IInfraredFrameSource (红外图像来源)
get_AudioSource() -> IAudioSource (声音来源)
get_BodyFrameSource() -> IBodyFrameSource (人体骨架信息来源)
get_BodyIndexFrameSource() -> IBodyIndexFrameSource (人体在深度图像中的位置信息来源)
……
以source结尾的,都是数据的来源,我们并不能直接使用这些数据,需要通过另外的函数读取。
3.Reader
通过 OpenReader() 这样一个函数,我们可以取得对应的 ’ Frame Reader’ 来读取数据
以IColorFrameSource为例,我们可以通过OpenReader()函数取得IColorFrameReader,并通过它来读取数据。
4.Data
通过AcquireLatestFrame(),我们可以获取最新的数据,并且装入另一个数据帧里,但是这个函数必须要判断是否返回一个成功值,因为获取失败的几率非常高。
以IColorFrameReader为例,获取到的最新数据保存至IColorFrame中
5.数据处理
读取到数据帧后,我们通过AccessUnderlyingBuffer()这个函数将数据复制到数组,这个函数有两个参数,第一个是个记录大小的变量,第二个是个接受数据的数组指针,传入后会分别返回数组的大小以及数据。它传入数组的数据代表的是那一个像素点上的物体距离传感器的位置。
我们也可以通过get_FrameDescription()描述彩色数据帧的具体信息
6总结
kinect 2 获取数据流程如下:
- GetDefaultKinectSensor() → IKinectSensor
- get_ColorFrameSource() → IColorFrameSource
- OpenReader() → IColorFrameReader
- AcquireLatestFrame() → IColorFrame
获取到数据之后就可以进行后续的数据处理啦~
参考资料
官方文档:介绍接口、函数以及Kinect结构等
Kinect for Windows C++ Reference
Heresy博客
Kinect for Windows SDK v2 C++ API 簡介
- [强烈推荐]新手入门提速器,有了他,ASP.NET问题将迎刃而解
- Kinect for windows 开发入门 九:骨骼数据获取和使用
- lae界面开发工具入门之介绍十三--<如何获取数据?>
- Kinect for windows 开发入门 十:语音数据的获取和使用
- Kinect for windows 开发入门 五:彩色数据获取和使用
- python数据分析新手入门课程学习——(一)数据获取(来源:慕课网)
- Kinect for windows 开发入门 八:景深数据获取和使用 下
- kinect sdk开发入门WPFdemo笔记[2] 获取深度数据
- Kinect for windows 开发入门 七:景深数据获取和使用 上
- 数据科学家是怎么用“”加密的“”语言阻碍新手入门的——Data Science 数据分析术语表
- (新手入门)AS3基于starling引擎移动开发之入门介绍
- 新手入门:介绍Java学习的一些主要思路
- ROS链接openni库获取kinect数据(PC端)
- Swift新手入门—数据类型
- ARKit从入门到精通-ARKit工作原理及流程介绍
- HPjmeter入门级介绍 推荐
- Python数据可视化利器Matplotlib,绘图入门篇,Pyplot介绍
- 强烈推荐一款数据恢复软件:handy recovery
- magento入门代码解析--醍醐灌顶【强烈推荐看看】
- App Store 经验贴,新手必看(包括申请流程、市场推广、销售数据、工具软件等等)