KinectV2 彩色图像上融合人体骨骼图


vs2013平台下 KinectV2 显示彩色图像 , 同时将人体骨骼画到对应的彩色图像上
资源截图
代码片段和文件信息
#include 
//#include  //opencv头文件
//#include 
//#include 

#include   
#include  
#include

#include  //Kinect头文件

using   namespace   std;
using   namespace   cv;

void    draw(Mat & img Joint & r_1 Joint & r_2 ICoordinateMapper * myMapper);

int main(void)
{
IKinectSensor   * mySensor = nullptr;
GetDefaultKinectSensor(&mySensor);
mySensor->Open();

IColorframeSource   * myColorSource = nullptr;
mySensor->get_ColorframeSource(&myColorSource);

IColorframeReader   * myColorReader = nullptr;
myColorSource->OpenReader(&myColorReader);

int colorHeight = 0 colorWidth = 0;
iframeDescription   * myDescription = nullptr;
myColorSource->get_frameDescription(&myDescription);
myDescription->get_Height(&colorHeight);
myDescription->get_Width(&colorWidth);

IColorframe * myColorframe = nullptr;
Mat original(colorHeight colorWidth CV_8UC4);

//**********************以上为Colorframe的读取前准备**************************

IBodyframeSource    * myBodySource = nullptr;
mySensor->get_BodyframeSource(&myBodySource);

IBodyframeReader    * myBodyReader = nullptr;
myBodySource->OpenReader(&myBodyReader);

int myBodyCount = 0;
myBodySource->get_BodyCount(&myBodyCount);

IBodyframe  * myBodyframe = nullptr;

ICoordinateMapper   * myMapper = nullptr;
mySensor->get_CoordinateMapper(&myMapper);

//**********************以上为Bodyframe以及Mapper的准备***********************
while (1)
{

while (myColorReader->AcquireLatestframe(&myColorframe) != S_OK);
myColorframe->CopyConvertedframeDataToArray(colorHeight * colorWidth * 4 original.data ColorImageFormat_Bgra);
Mat copy = original.clone();        //读取彩色图像并输出到矩阵

while (myBodyReader->AcquireLatestframe(&myBodyframe) != S_OK); //读取身体图像
IBody   **  myBodyArr = new IBody *[myBodyCount];       //为存身体数据的数组做准备
for (int i = 0; i < myBodyCount; i++)
myBodyArr[i] = nullptr;

if (myBodyframe->GetAndRefreshBodyData(myBodyCount myBodyArr) == S_OK)     //把身体数据输入数组
for (int i = 0; i < myBodyCount; i++)
{
BOOLEAN     result = false;
if (myBodyArr[i]->get_IsTracked(&result) == S_OK && result) //先判断是否侦测到
{
Joint   myJointArr[JointType_Count];
if (myBodyArr[i]->GetJoints(JointType_Count myJointArr) == S_OK)   //如果侦测到就把关节数据输入到数组并画图
{
draw(copy myJointArr[JointType_Head] myJointArr[JointType_Neck] myMapper);
draw(copy myJointArr[JointType_Neck] myJointArr[JointType_SpineShoulder] myMapper);

draw(copy myJointArr[JointType_SpineShoulder] myJointArr[JointType_ShoulderLeft] myMapper);
draw(copy myJointArr[JointType_SpineShoulder] myJointArr[JointType_SpineMid] myMapper);
draw(copy myJointArr[JointType_SpineShoulder] myJointArr[JointType_ShoulderRight] myMapper);

draw(copy myJointArr[JointType_ShoulderLeft

 属性            大小     日期    时间   名称
----------- ---------  ---------- -----  ----
     目录           0  2017-11-29 16:55  bone
     目录           0  2017-11-29 16:50  boneDebug
     文件       71168  2017-11-29 16:50  boneDebugone.exe
     文件      398420  2017-11-29 16:50  boneDebugone.ilk
     文件     1986560  2017-11-29 16:50  boneDebugone.pdb
     目录           0  2017-08-09 09:22  boneone
     目录           0  2017-11-29 16:50  boneoneDebug
     文件        2778  2017-11-29 16:50  boneoneDebugone.log
     目录           0  2017-11-29 16:50  boneoneDebugone.tlog
     文件       37386  2017-11-29 16:50  boneoneDebugone.tlogCL.read.1.tlog
     文件         440  2017-11-29 16:50  boneoneDebugone.tlogCL.write.1.tlog
     文件         169  2017-11-29 16:50  boneoneDebugone.tlogone.lastbuildstate
     文件         624  2017-11-29 16:50  boneoneDebugone.tlogcl.command.1.tlog
     文件        2800  2017-11-29 16:50  boneoneDebugone.tloglink.command.1.tlog
     文件        6996  2017-11-29 16:50  boneoneDebugone.tloglink.read.1.tlog
     文件         424  2017-11-29 16:50  boneoneDebugone.tloglink.write.1.tlog
     文件     1059840  2017-11-29 16:50  boneoneDebugvc120.idb
     文件     1609728  2017-11-29 16:50  boneoneDebugvc120.pdb
     文件      257265  2017-11-29 16:50  boneoneDebug源.obj
     文件        4080  2017-08-09 09:12  boneoneone.vcxproj
     文件         944  2017-08-09 09:12  boneoneone.vcxproj.filters
     文件        5899  2017-08-09 09:22  boneone源.cpp
     文件    54067200  2017-11-29 16:55  boneone.sdf
     文件         958  2017-08-09 08:39  boneone.sln
     文件       19968  2017-11-29 16:55  boneone.v12.suo

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件举报,一经查实,本站将立刻删除。

发表评论

评论列表(条)