Kinect工作流程
来源:互联网 发布:java transient 作用 编辑:程序博客网 时间:2024/05/22 12:17
这个学期在搞Kinect的开发,主要是交互这一块儿,所以着重写写和交互相关的部分的内容。3D重建的部分自己也还没完全搞清楚,那个以后再说吧。由于懒和语文不好,以及没写过技术博客,所以就简单概括一下好了,有啥问题问我好了。Kinect2.0推出以后,微软推出了SDK2.0,2.0和1.x之间是有比较大的差别的,还是需要注意一下。
Kinect主要用的接口有以下几个:
IKinectSensor这是连接Kinect设备用的接口。ICoordinateMapper 这是用来把数据流的坐标转换为世界坐标系的接口I*FrameSource这是和Kinect设备某一数据流绑定的数据源接口,*处是不同的数据种类,比如彩色数据流是IColorFrameSource、深度数据流是IDepthFrameSource等等。I*FrameReader这是用来读取翻译数据流获得数据帧的接口,*处是不同的数据种类。I*Frame 这是用来保存翻译好的数据帧的类,其中深度帧、图像帧可以用AcquireUnderlyingBuffer方法来将其中的内容保存到一个数组当中,肢体识别帧可以用GetAndRefreshBodyData来将数据保存到一个IBody类型的数组中。
当然还有很多其它的接口和功能,但是事实上这些接口就可以从Kinect设备获取数据了,非常简单方便,SDK的样例的代码也都不长,而且很大一部分都是用来利用D2D设备进行渲染的。简单而方便的SDK结构大大简化了Kinect开发,这大概也是Kinect流行的一个原因吧。
所以整个流程基本如下:
1、使用GetDefaultKinectSensor(IKinectSensor)来获取当前的Kinect设备。
2、使用IKinectSensor::open()方法来打开Kinect设备。
3、使用IKinectSensor::get_CoordinateMapper(ICoordinateMapper *)方法来获取坐标变换器
4、使用IKinectSensor::get_*FrameSource(I*FrameSource *)获得某种数据流的数据源
5、I*FrameSource::OpenReader(I*FrameReader *)连接数据源与读取翻译接口
6、在主循环中不断询问是否有新的数据帧:I*FrameReader::AcquireLatestFrame(I*Frame *)
7、根据需要对数据进行处理
由于Kinect的数据都是30.00fps,所以需要不断地去尝试是否有新的数据帧生成,有就得到然后进行处理。
Kinect主要用的接口有以下几个:
IKinectSensor这是连接Kinect设备用的接口。ICoordinateMapper 这是用来把数据流的坐标转换为世界坐标系的接口I*FrameSource这是和Kinect设备某一数据流绑定的数据源接口,*处是不同的数据种类,比如彩色数据流是IColorFrameSource、深度数据流是IDepthFrameSource等等。I*FrameReader这是用来读取翻译数据流获得数据帧的接口,*处是不同的数据种类。I*Frame 这是用来保存翻译好的数据帧的类,其中深度帧、图像帧可以用AcquireUnderlyingBuffer方法来将其中的内容保存到一个数组当中,肢体识别帧可以用GetAndRefreshBodyData来将数据保存到一个IBody类型的数组中。
当然还有很多其它的接口和功能,但是事实上这些接口就可以从Kinect设备获取数据了,非常简单方便,SDK的样例的代码也都不长,而且很大一部分都是用来利用D2D设备进行渲染的。简单而方便的SDK结构大大简化了Kinect开发,这大概也是Kinect流行的一个原因吧。
所以整个流程基本如下:
1、使用GetDefaultKinectSensor(IKinectSensor)来获取当前的Kinect设备。
2、使用IKinectSensor::open()方法来打开Kinect设备。
3、使用IKinectSensor::get_CoordinateMapper(ICoordinateMapper *)方法来获取坐标变换器
4、使用IKinectSensor::get_*FrameSource(I*FrameSource *)获得某种数据流的数据源
5、I*FrameSource::OpenReader(I*FrameReader *)连接数据源与读取翻译接口
6、在主循环中不断询问是否有新的数据帧:I*FrameReader::AcquireLatestFrame(I*Frame *)
7、根据需要对数据进行处理
由于Kinect的数据都是30.00fps,所以需要不断地去尝试是否有新的数据帧生成,有就得到然后进行处理。
0 0
- Kinect工作流程
- Kinect Fusion 的处理流程 工作原理
- Kinect程序流程
- 【转】Kinect工作原理
- 工作流程
- 工作流程
- 工作流程
- 工作流程
- 工作流程
- 微软官方博客揭秘Kinect工作原理
- 揭秘Kinect工作原理【微软官方】
- 微软官方博客揭秘Kinect工作原理
- kinect
- kinect
- Kinect
- Kinect
- kinect
- struts2工作原理 工作流程
- 关于opencv中的imread()函数声明
- ios 学习备忘
- android GridView默认选中分析
- 【SSH项目实战】国税协同平台-4.用户管理需求分析&CRUD方法1
- AES加密,128-192-256,方案二
- Kinect工作流程
- 【SSH项目实战】国税协同平台-4.用户管理需求分析&CRUD方法2
- 查看virsh管理qemu虚拟机日志信息和libvirtd日志信息
- uva111(dp)
- Java 程序性能优化《第一章》Java性能调优概述 1.3基本调优策略和手段
- Android从源码分析二:AsyncTask异步任务
- 【SSH项目实战】国税协同平台-5.头像上传功能
- 关于友盟自定义视图实现分享 (微信朋友 微信朋友圈 微信收藏)
- haproxy 配置