【翻译】Kinect v2程序设计(C++) BodyIndex篇
通过Kinect SDK v2预览版,取得BodyIndex(人体区域)的方法和示例代码。

图1 Kinect SDK v2预览版的示例程序(BodyBasics)

- // Sensor
- IKinectSensor* pSensor; ……
- HRESULT hResult = S_OK;
- hResult = GetDefaultKinectSensor( &pSensor ); ……
- if( FAILED( hResult ) ){
- std::cerr << "Error : GetDefaultKinectSensor" << std::endl;
- return -;
- }
- hResult = pSensor->Open(); ……
- if( FAILED( hResult ) ){
- std::cerr << "Error : IKinectSensor::Open()" << std::endl;
- return -;
- }
- // Source
- IBodyIndexFrameSource* pBodyIndexSource; ……
- hResult = pSensor->get_BodyIndexFrameSource( &pBodyIndexSource ); ……
- if( FAILED( hResult ) ){
- std::cerr << "Error : IKinectSensor::get_BodyIndexFrameSource()" << std::endl;
- return -;
- }
- // Reader
- IBodyIndexFrameReader* pBodyIndexReader; ……
- hResult = pBodyIndexSource->OpenReader( &pBodyIndexReader ); ……
- if( FAILED( hResult ) ){
- std::cerr << "Error : IBodyIndexFrameSource::OpenReader()" << std::endl;
- return -;
- }
- int width = ; ……
- int height = ; ……
- cv::Mat bodyIndexMat( height, width, CV_8UC3 ); ……
- cv::namedWindow( "BodyIndex" );
- // Color Table
- cv::Vec3b color[]; ……
- color[] = cv::Vec3b( , , );
- color[] = cv::Vec3b( , , );
- color[] = cv::Vec3b( , , );
- color[] = cv::Vec3b( , , );
- color[] = cv::Vec3b( , , );
- color[] = cv::Vec3b( , , );
- while( ){
- // Frame
- IBodyIndexFrame* pBodyIndexFrame = nullptr; ……
- hResult = pBodyIndexReader->AcquireLatestFrame( &pBodyIndexFrame ); ……
- if( SUCCEEDED( hResult ) ){
- unsigned int bufferSize = ;
- unsigned char* buffer = nullptr;
- hResult = pBodyIndexFrame->AccessUnderlyingBuffer( &bufferSize, &buffer ); ……
- if( SUCCEEDED( hResult ) ){
- for( int y = ; y < height; y++ ){
- for( int x = ; x < width; x++ ){
- unsigned int index = y * width + x;
- if( buffer[index] != 0xff ){
- bodyIndexMat.at<cv::Vec3b>( y, x ) = color[buffer[index]]; ……
- }
- else{
- bodyIndexMat.at<cv::Vec3b>( y, x ) = cv::Vec3b( , , ); ……
- }
- }
- }
- }
- }
- SafeRelease( pBodyIndexFrame );
- // Show Window
- cv::imshow( "BodyIndex", bodyIndexMat );
- if( cv::waitKey( ) == VK_ESCAPE ){
- break;
- }
- }

Kinect SDK v1 | Kinect SDK v2预览版 | |
---|---|---|
名称 | Player | BodyIndex |
检测支持人数 | 6人 | 6人 |
人体領域的値 | 1~6 | 0~5 |
非人体領域的値 | 0 | 255(0xff) |

【翻译】Kinect v2程序设计(C++) BodyIndex篇的更多相关文章
- 【翻译】Kinect v2程序设计(C++) Body 篇
Kinect SDK v2预览版的主要功能的使用介绍,基本上完成了.这次,是关于取得Body(人体姿势)方法的说明. 上一节,是使用Kinect SDK v2预览版从Kinect v2预览版取得B ...
- 【翻译】Kinect v2程序设计(C++-) AudioBeam篇
Kinect v2,Microphone Array可以用来对于水平面音源方向的推测(AudioBeam)和语音识别(Speech Recognition).这一节是介绍如何取得AudioBeam. ...
- 【翻译】Kinect v2程序设计(C++) Color篇
Kinect SDK v2预览版,获取数据的基本流程的说明.以及取得Color图像的示例程序的介绍. 上一节,是关于当前型号Kinect for Windows(后面称作Kinect v1)和次世代型 ...
- 【翻译】Kinect v2程序设计(C++) Depth编
Kinect SDK v2预览版,取得Depth数据的方法说明. 上一节,介绍了通过使用Kinect for Windows SDK v2预览版(以下简称为,Kinect SDK v2预览版)从Kin ...
- 【翻译】Kinect v1和Kinect v2的彻底比较
本连载主要是比较Kinect for Windows的现行版(v1)和次世代型的开发者预览版(v2),以C++开发者为背景介绍进化的硬件和软件.本文主要是对传感的配置和运行条件进行彻底的比较. ...
- 【计算机视觉】深度相机(五)--Kinect v2.0
原文:http://blog.csdn.NET/qq1175421841/article/details/50412994 ----微软Build2012大会:Kinect for Windows P ...
- 【计算机视觉】深度相机(六)--Kinect v2.0 手势样本库制作
目录为1.如何使用Kinect Studio录制手势剪辑:2.如何使用Visual Gesture Builder创建手势项目:3.如何在我的C#程序中使用手势:4.关于录制.剪辑手势过程中的注意事项 ...
- Kinect v2.0 for windows开发环境说明
官方文档里是这些: Supported Operating Systems and Architectures The following operating systems and architec ...
- Kinect v2(Microsoft Kinect for Windows v2 )配置移动电源解决方案
Kinect v2配置移动电源解决方案 Kinect v2如果用于移动机器人上(也可以是其他应用场景),为方便有效地展开后续工作,为其配置移动电源是十分必要的. 一.选择移动电源 Kinect v2原 ...
随机推荐
- js checkbox
js checkbox <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http:/ ...
- 如何在Eclipse中查看Android源码或者第三方组件包源码
文章出处:http://blog.csdn.net/cjjky/article/details/6535426 在学习过程中如果经常阅读源码,理解程度会比较深,学习效率也会比较高,那么如何方便快捷的阅 ...
- Android学习 之 startActivityForResult 和 onActivityResult
startActivityForResult 和 onActivityResult() 作用:主要用于 主Activity向调用的 子Activity 获得数据. 使用方法:在 主Activity写 ...
- matlab练习程序(透视投影,把lena贴到billboard上)
本练习程序是受到了这个老外博文的启发,感觉挺有意思,就尝试了一下.他用的是opencv,我这里用的是matlab. 过去写过透视投影,当时是用来做倾斜校正的,这次同样用到了透视投影,不过更有意思,是将 ...
- TeeChart注册方法
- 【HTML5】表单属性
* autocomplete autocomplete 属性规定 form 或 input 域应该拥有自动完成功能. 注释:autocomplete 适用于 <form> 标签,以及以下类 ...
- yuv rgb 像素格式1
===========大小============= 一般,直接采集到的视频数据是RGB24的格式 RGB24一帧的大小size=width×heigth×3 Byte, RGB32的size=wid ...
- Android 编程下如何调整 SwipeRefreshLayout 的下拉刷新距离
SwipeRefreshLayout 的下拉刷新距离比较短,并且也没有提供设置下拉距离的 API,但是看 SwipeRefreshLayout 的源码,会发现有一个内部变量 mDistanceToTr ...
- javascript优化--10模式(设计模式)01
单体模式:保证一个特定类仅有一个实例;即第二次使用同一个类创建新对象时,应该得到与第一个所创建对象完全相同对象: 在JS中,可以认为每次在使用对象字面量创建对象的时候,实际上就在创建一个单体: 当使用 ...
- 阿里云SDK手册之java SDK
进行阿里云sdk开发的前提是已经购买阿里云的相关服务才能调用阿里的相关接口进行开发.最近公司在做云管控的项目,于是进行下摘录总结. 一. 环境准备 阿里云针对不同的开发语言提供不同的sdk,由于项目用 ...