【翻译】Kinect v2程序设计(C++) BodyIndex篇
通过Kinect SDK v2预览版,取得BodyIndex(人体区域)的方法和示例代码。
![](/assets/blank.gif)
图1 Kinect SDK v2预览版的示例程序(BodyBasics)
![](/assets/blank.gif)
// Sensor IKinectSensor* pSensor; ……1 HRESULT hResult = S_OK; hResult = GetDefaultKinectSensor( &pSensor ); ……2 if( FAILED( hResult ) ){std::cerr << "Error : GetDefaultKinectSensor" << std::endl;return -1; } hResult = pSensor->Open(); ……3 if( FAILED( hResult ) ){std::cerr << "Error : IKinectSensor::Open()" << std::endl;return -1; }
// Source IBodyIndexFrameSource* pBodyIndexSource; ……1 hResult = pSensor->get_BodyIndexFrameSource( &pBodyIndexSource ); ……2 if( FAILED( hResult ) ){std::cerr << "Error : IKinectSensor::get_BodyIndexFrameSource()" << std::endl;return -1; }
// Reader IBodyIndexFrameReader* pBodyIndexReader; ……1 hResult = pBodyIndexSource->OpenReader( &pBodyIndexReader ); ……2 if( FAILED( hResult ) ){std::cerr << "Error : IBodyIndexFrameSource::OpenReader()" << std::endl;return -1; }
int width = 512; ……1 int height = 424; ……1 cv::Mat bodyIndexMat( height, width, CV_8UC3 ); ……2 cv::namedWindow( "BodyIndex" ); // Color Table cv::Vec3b color[6]; ……3 color[0] = cv::Vec3b( 255, 0, 0 ); color[1] = cv::Vec3b( 0, 255, 0 ); color[2] = cv::Vec3b( 0, 0, 255 ); color[3] = cv::Vec3b( 255, 255, 0 ); color[4] = cv::Vec3b( 255, 0, 255 ); color[5] = cv::Vec3b( 0, 255, 255 ); while( 1 ){// FrameIBodyIndexFrame* pBodyIndexFrame = nullptr; ……4hResult = pBodyIndexReader->AcquireLatestFrame( &pBodyIndexFrame ); ……5if( SUCCEEDED( hResult ) ){unsigned int bufferSize = 0;unsigned char* buffer = nullptr;hResult = pBodyIndexFrame->AccessUnderlyingBuffer( &bufferSize, &buffer ); ……6if( SUCCEEDED( hResult ) ){for( int y = 0; y < height; y++ ){for( int x = 0; x < width; x++ ){unsigned int index = y * width + x;if( buffer[index] != 0xff ){bodyIndexMat.at<cv::Vec3b>( y, x ) = color[buffer[index]]; ……7}else{bodyIndexMat.at<cv::Vec3b>( y, x ) = cv::Vec3b( 0, 0, 0 ); ……7}}}}}SafeRelease( pBodyIndexFrame );// Show Windowcv::imshow( "BodyIndex", bodyIndexMat );if( cv::waitKey( 30 ) == VK_ESCAPE ){break;} }
![](/assets/blank.gif)
Kinect SDK v1 | Kinect SDK v2预览版 | |
---|---|---|
名称 | Player | BodyIndex |
检测支持人数 | 6人 | 6人 |
人体領域的値 | 1~6 | 0~5 |
非人体領域的値 | 0 | 255(0xff) |
![](/assets/blank.gif)
转载于:https://www.cnblogs.com/TracePlus/p/4136368.html
【翻译】Kinect v2程序设计(C++) BodyIndex篇相关推荐
- 【翻译】Kinect v2程序设计(C++) Depth编
Kinect SDK v2预览版,取得Depth数据的方法说明. 上一节,介绍了通过使用Kinect for Windows SDK v2预览版(以下简称为,Kinect SDK v2预览版)从Kin ...
- 【论文翻译】用于移动机器人导航的Kinect v2:评估和建模
吐槽:哇,为了图像检测的期末报告,我花了两天时间,真是一句一句的翻译过来了. 话说中文网站资料是真的靠不住...为了Kinect2的使用,我在中文网站上摸索了一个多月,自己摸鱼走了快两个月的弯路,原来 ...
- 深度相机(五)--Kinect v2.0
原文:http://blog.csdn.net/qq1175421841/article/details/50412994 ----微软Build2012大会:Kinect for Windows P ...
- Kinect V2开发(5)读关节数据
Kinect能取得Depth(物体与传感器的距离信息)和BodyIndex(人物索引),基于这些数据可以侦测到人体的骨骼信息并追踪,在Kinect V2的SDK 2.0中,它最多可以同时获取到6个人. ...
- 【计算机视觉】深度相机(六)--Kinect v2.0 手势样本库制作
目录为1.如何使用Kinect Studio录制手势剪辑:2.如何使用Visual Gesture Builder创建手势项目:3.如何在我的C#程序中使用手势:4.关于录制.剪辑手势过程中的注意事项 ...
- Kinect v1和Kinect v2的彻底比较
本连载主要是比较Kinect for Windows的现行版(v1)和次世代型的开发者预览版(v2),以C++开发者为背景介绍进化的硬件和软件.本文主要是对传感的配置和运行条件进行彻底的比较. 本连载 ...
- 深度相机(六)--Kinect v2.0 手势样本库制作
目录为1.如何使用Kinect Studio录制手势剪辑:2.如何使用Visual Gesture Builder创建手势项目:3.如何在我的C#程序中使用手势:4.关于录制.剪辑手势过程中的注意事项 ...
- Kinect v2保存图像和深度图序列
上班后的端午节就意味着多一天的假期!!! 本工作的主要出发点是录制数据集,用来供后续的建图和bug重现. 软硬件配置 环境配置如下: 系统:Ubuntu 16.04 LTS 64位 CPU: Int ...
- 常用摄像头一些点云深度矫正ROS程序(ZED kinect v2 D415)
ZED摄像头 获得中心点深度,未考虑RGB与深度映射(可参考下面D415) #include <iostream> #include <fstream> #include &l ...
最新文章
- golang strings包部分函数使用
- sed、grep、awk
- 【uoj#225】[UR #15]奥林匹克五子棋 构造
- Python自动化运维——系统性能信息模块
- chrome插件infinity_5款超好用Chrome插件,快试试看!
- golang java rpc_golang两种调用rpc的方法
- Java new关键字和newInstance()方法的区别
- Leaflet文档阅读笔记-Leaflet on Mobile笔记
- python学习笔记之读取pdf文件库pdfplumber(一)
- ls只显示文件名/只显示文件夹名
- bypy更换绑定的百度云盘账户
- 如何使用云桌面系统提高涉密网络安全性与方便性
- QML用径向渐变做波纹效果
- android 设备序列号_如何查找您的Android设备的序列号
- 国产办公计算机,国内第一台纯国产计算机在重庆下线,芯片、系统全是纯国产...
- java使用佳博打印机打印标签
- vue中怎么实现吸顶效果
- 计算机经典书籍- -
- 解决centos 个别命令command not found 每次打开虚拟机都要sourc .bashrc
- 最详细的golang + 私库(gitlab gitee) 模块开发 这一篇文章解决所有问题