【翻译】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原 ...
随机推荐
- Android之ScrollView
1.ScrollView和HorizontalScrollView是为控件或者布局添加滚动条 2.上述两个控件只能有一个孩子,但是它并不是传统意义上的容器 3.上述两个控件可以互相嵌套 4.滚动条的位 ...
- .net学习笔记---HttpRuntime类
HttpRuntime在ASP.NET处理请求中负责的是创建HttpContext对象以及调用HttpApplicationFactory创建HttpApplication. 其定义如下: publi ...
- 3.工厂方法模式(Factory Method)
using System; using System.Reflection; namespace ConsoleApplication1 { class Program { static void M ...
- jquery 展开折叠效果
仅供参考 图片 jquery.js 自己处理 <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"& ...
- hdu 5284 BestCoder Round #48 ($) 1001 水题 *
题意:看一个字符串中是否包含顺序的 w y h ,字符之间可以有其他字符,并且如果有多个连续的vv,则可以看做一个w 比较水,直接看代码 #include<cstdio> #incl ...
- hdu 4021 n数码
好题,6666 转自:http://www.cnblogs.com/kuangbin/archive/2012/08/23/2652410.html 题意:给出一个board,上面有24个位置,其中2 ...
- FFmpeg源代码结构图
转自:http://blog.csdn.net/leixiaohua1020/article/details/44220151 FFmpeg的库函数源代码分析文章列表: [架构图] FFmpeg源代码 ...
- CDT
Eclipse CDT 是 Eclipse 插件,它将把 Eclipse 转换为功能强大的 C/C++ IDE.
- loj 1063(求割点个数)
题目链接:http://acm.hust.edu.cn/vjudge/problem/viewProblem.action?id=26780 思路:判断一个点是否是割点的两个条件:1.如果一个点v是根 ...
- http://jingyan.baidu.com/article/86112f13582848273797879b.html
http://jingyan.baidu.com/article/86112f13582848273797879b.html